我目前在春天使用openid connect的Authorisation Code Flow
这是默认模式。在此模式下,使用的响应类型为code
,我得到access_token
和id_token
。所以在这里,一切似乎都可以。
但是,当我尝试通过设置Implicit Flow
来使用authorizationGrantType=implicit
时,使用的响应类型为token
而我只获得access_token
。这反映了Authorisation Request part of OAuth 2.0 specification。此外,OpenId Connect spec似乎没有使用响应类型的token
值:
那么Spring open id connect中隐式模式的目的是什么?
答案 0 :(得分:0)
注意:虽然OAuth 2.0还为隐式流定义了令牌响应类型值,但OpenID Connect不使用此响应类型,因为不会返回ID令牌。
当OpenID Connect规范突出显示时, response_type = token 不是OpenID Connect的有效响应类型。所以你所观察到的是回到OAuth 2.0并因此接收访问令牌。
我不是来自Spring背景,但您应该能够从代码中定义/配置相应的 response_type 值。如果不是这种情况,那么您只是幸运地获得了授权代码流程观察。根据授权服务器配置/首选项,它可能会发送 id令牌。例如,Azure AD发送OAuth 2.0 code grant
的id标记