【问题标题】:What is the purpose of id token when resource server and client app is same?当资源服务器和客户端应用程序相同时,id 令牌的目的是什么?
【发布时间】:2021-10-14 18:39:26
【问题描述】:

我们有一个与人力资源相关的应用程序,用户可以在其中填写他们的时间表等。 我们使用符合 oauth2/OIDC 的 IAM 工具 Keycloak 来进行身份验证和授权。我们的 HR 后端应用程序是一个资源服务器。我们正在使用授权代码流,它为我们提供了针对在 Keycloak 上的身份验证之后执行的令牌请求以及 HR UI 执行的回调(我们的 HR UI 应用程序的 UI 页面)到我们放置的 HR 后端(资源服务器)的访问令牌我们 HR UI 的浏览器存储在 Authorization 标头中发送该令牌以从 HR 后端调用受保护的资源,这使我们的应用程序 oauth2 兼容,现在我的问题是我们如何使应用程序 OIDC 兼容?我可以在初始授权 URL,但是当我们从 HR 后端的数据库中获取用户名时,我将使用 id_token 做什么。在前端解析 ID 令牌并显示名称会使我们的应用符合 OIDC 还是我们必须执行任何进一步的优化?

【问题讨论】:

    标签: spring-boot spring-security oauth-2.0 keycloak openid-connect


    【解决方案1】:

    我认为您需要查看 Id-token 的用途。

    ID-token 代表有关用户的详细信息,更重要的是用户如何进行身份验证(密码、2FA...)。 Id-token 的生命周期通常很短(比如几分钟)。

    就像specification 描述的那样:

    ID 令牌是一种安全令牌,其中包含有关授权服务器在使用客户端时对最终用户进行身份验证的声明,以及其他可能请求的声明。

    所以,基本上,你可以用它做任何你喜欢的事情,但是 Spring OpenID 客户端库通常会为你处理它并提取必要的数据来创建本地用户会话。

    您无需执行任何操作即可符合 OIDC,只需使用标准的 openid 连接库并遵循各种最佳实践即可。

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 2017-01-30
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 2017-04-30
      • 2010-10-17
      • 2023-04-09
      • 2018-01-05
      相关资源
      最近更新 更多