You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Client Credentials获取Snowflake令牌遇invalid_grant错误求助

问题描述

尝试使用Client Credentials授权类型获取Access Token时,收到如下错误响应:

{
 "data" : null,
 "error" : "invalid_grant",
 "code" : null,
 "message" : "The provided grant or refresh token is invalid.",
 "success" : false,
 "headers" : null
}

当前使用的Security Integration配置如下:

CREATE OR REPLACE SECURITY INTEGRATION my_oauth_client
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://localhost.com' 
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE;

备注:使用Authorization Code授权类型时可正常获取Access Token(会弹出授权窗口),但需要适配Server to Server场景的Client Credentials模式,请指出配置错误点。

配置错误点及修正
  • 未启用Client Credentials授权流:你的Security Integration配置中没有明确允许CLIENT_CREDENTIALS授权类型,这是导致invalid_grant错误的核心原因。Snowflake OAuth集成默认仅启用适配用户交互的授权流(如Authorization Code),Server to Server场景的Client Credentials需要显式声明。
  • 冗余配置可移除:OAUTH_REDIRECT_URI是Authorization Code模式必填的回调地址,Client Credentials模式下不需要该参数,可从配置中删除。

修正后的配置示例:

CREATE OR REPLACE SECURITY INTEGRATION my_oauth_client
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_ALLOWED_AUTHORIZATION_FLOWS = ('CLIENT_CREDENTIALS')
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE;

额外注意:使用Client Credentials模式请求Token时,必须使用正确的客户端ID和客户端密钥进行身份验证,确保请求参数中grant_type字段设置为client_credentials。

内容的提问来源于stack exchange,提问作者Rajesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:22:38