You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何已授权OpenID时,请求./Default scope无法获取ID Token?

关于OAuth2.0中请求./Default scope无法获取ID Token的原因分析
  • OIDC规范的强制要求:ID Token是OpenID Connect(OIDC)的专属产物,OIDC明确规定,只有在授权请求中显式包含openid scope时,身份提供商(IdP)才会触发ID Token的生成逻辑。.Default scope是IdP预定义的默认资源权限集合,它本身不会自动包含openid这个特殊scope——哪怕你在应用后台配置中添加了openid权限,只要请求参数里没明确写openid,IdP就不会生成ID Token。

  • .Default scope的定位差异.Default scope的设计目标是提供应用常用的资源访问权限(比如读取用户基本资料、调用特定API的权限),它属于OAuth2.0的资源授权范畴,而非OIDC的身份验证范畴。两者的流程逻辑是分开的,请求.Default只会触发资源授权流程,不会触发OIDC的身份断言流程,自然拿不到ID Token。

  • IdP的配置逻辑限制:部分身份提供商的.Default scope是固定的权限集合,不会自动继承应用后台配置的额外scope(比如你添加的openid)。应用后台配置的是允许请求的scope列表,但实际请求时必须明确指定要使用的scope,IdP不会主动把配置的scope合并到.Default的响应中。

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

火山引擎 最新活动