oauth - Snowflake 自定义 OAuth 客户端因 invalid_client 错误而失败?
问题描述
我通过在此处引用文档https://docs.snowflake.com/en/user-guide/oauth-custom.html为雪花帐户创建了一个自定义 OAuth 客户端
我使用以下查询为我的本地创建了一个 OAuth 自定义实例:
create security integration My_Snowflake_Connector
type = oauth
enabled = true
oauth_client = custom
oauth_client_type = 'CONFIDENTIAL'
oauth_redirect_uri = 'http://localhost:4200/api/auth/callback/snowflake'
oauth_issue_refresh_tokens = true
oauth_refresh_token_validity = 86400
blocked_roles_list = ()
pre_authorized_roles_list = ('SYSADMIN', 'ACCOUNTADMIN', 'SECURITYADMIN')
oauth_allow_non_tls_redirect_uri = true
我使用以下查询获得了授权和令牌 URL:
DESCRIBE security integration My_Snowflake_Connector
我还使用以下查询获得了秘密:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS( 'MY_SNOWFLAKE_CONNEECTOR' )
我用过passport-oauth2
插件&OAuth2Strategy
在启动 OAuth 流程时,我被正确地带到了我登录的雪花帐户,它显示了 OAuth 同意屏幕,但在重定向时,我收到一个错误invalid_client
。
我收到以下错误 JSON blob:
{\n "data" : null,\n "error" : "invalid_client",\n "code" : null,\n "message" : "This is an invalid client.",\n "success" : false,\n "headers" : null\n}
我已经验证了回调 URL、客户端 ID 和密码似乎都没有错误。
我的配置可能有什么问题?
更新
我们无法弄清楚 OAuth 错误背后的原因,最后,我们最终使用了来自雪花的 Node js 客户端。欲了解更多信息:https ://docs.snowflake.com/en/user-guide/nodejs-driver.html
解决方案
当客户端身份验证设置为“在正文中发送客户端凭据”时,从 Postman 测试 OAuth2 时,我可能会看到类似的错误。
将其更改为“作为基本身份验证标头发送”后,令牌生成工作正常并成功进行。
我想这个改变也应该解决你的问题。我检查的参考资料之一在这里:https ://github.com/ciaranj/node-oauth/pull/316
推荐阅读
- c# - 使用小玩意来说明排序过程
- ffmpeg - 为具有不透明度大小调整和不透明度的视频添加图像作为水印
- r - 让表(列)为未表示的值返回 0
- flutter - Flutter - 依次播放 2 个或更多 Lottie 文件
- admob - 我们可以在我们域的根目录中使用两个广告网络 app-ads.txt
- c++ - QT scene->removeItem (* QgraphicsItem) 将物体从场景中移除但仍被观察到
- javascript - Javascript使按钮无法点击
- php - Wordpress第二页分页不显示帖子
- haskell - 使用cabal时如何配置haskell cradle?
- git - .gitignore 中./(点斜线)的功能?