是否可以仅使用 Keycloak 进行身份验证?
Posted
技术标签:
【中文标题】是否可以仅使用 Keycloak 进行身份验证?【英文标题】:Is it possible to use the Keycloak for authentication only? 【发布时间】:2021-11-14 17:39:43 【问题描述】:我想使用 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】:OpenID Connect (OIDC) 是建立在 OAuth 2.0 之上的身份验证协议。
-
使用 OAuth 2.0,用户可以通过授权服务器进行身份验证并为您获取
access token
。
使用 OIDC,他们还可以为您提供一个名为 ID token
的令牌。
所以我想说,当您使用 OIDC 协议时,您不能省略访问令牌,因为底层 OAuth 2.0 协议会生成它。
来源:https://developer.okta.com/docs/guides/validate-id-tokens/overview/
【讨论】:
感谢您的明确答复。是否有任何 Oauth2 提供者产生 JWT 令牌?我发现的所有提供程序都与 Oauth 兼容,并且正如您提到的那样,生成 access_token 和 id_token。我正在搜索仅用于身份验证的最佳 Bearer 令牌。以上是关于是否可以仅使用 Keycloak 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
Keycloak 使用不同的客户端重新验证经过身份验证的用户