我想使用JWT进行身份验证,所以我尝试使用Keycloak来获取Bearer令牌。我的问题是,当我在请求中设置scope=openid
时,响应包含access_token
和id_token
,如下所示:
{
"access_token": "eyJAlW7lLfxPta...MS85g",
"expires_in": 300,
"refresh_expires_in": 1800,
"token_type": "Bearer",
"id_token": "eyJhbGciOmQtMzJhOThS...Htm2OSGo9pVs-CWBJGaPC2Z2ib6FSSckzTxA",
"not-before-policy": 0,
"session_state": "d76a27af-3780-4843-9c6d-32a98c1f6625",
"scope": "openid"
}
我知道access_token
是用于授权的,所以我不需要它。我只需要id_token
用于身份验证。是否可以从Keycloak响应中删除access_token,或者只是全局OIDC规则,即id_token始终与access_token一起提供?我是否使用了正确的令牌或身份验证必须由access_token完成?
1条答案
按热度按时间axzmvihb1#
OpenID Connect(OIDC)是建立在OAuth 2.0之上的身份验证协议。
1.使用OAuth 2.0,用户可以通过授权服务器进行身份验证,并获得
access token
。1.通过OIDC,他们还可以提供一个名为
ID token
的令牌。因此,我认为在使用OIDC协议时,您不能忽略访问令牌,因为底层OAuth 2.0协议会生成它。
来源:https://developer.okta.com/docs/guides/validate-id-tokens/overview/