【问题标题】:Is it possible to use the Keycloak for authentication only?是否可以仅使用 Keycloak 进行身份验证?
【发布时间】:2021-11-14 17:39:43
【问题描述】:

我想使用 JWT 进行身份验证,所以我尝试使用 Keycloak 来获取 Bearer 令牌。我的问题是,当我在请求中设置 scope=openid 时。响应包含 access_tokenid_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 完成?

【问题讨论】:

    标签: oauth-2.0 jwt keycloak openid-connect


    【解决方案1】:

    OpenID Connect (OIDC) 是建立在 OAuth 2.0 之上的身份验证协议。

    1. 使用 OAuth 2.0,用户可以通过授权服务器进行身份验证并为您获取 access token
    2. 使用 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 令牌。
    猜你喜欢
    • 1970-01-01
    • 2017-02-20
    • 2019-01-30
    • 2021-09-25
    • 1970-01-01
    • 2019-03-07
    • 2021-04-26
    • 2019-03-02
    • 2019-04-27
    相关资源
    最近更新 更多