当资源服务器和客户端应用程序相同时,id 令牌的用途是什么?
What is the purpose of id token when resource server and client app is same?
我们有一个与人力资源相关的应用程序,用户可以在其中填写时间表等。
我们正在使用 oauth2/OIDC 兼容的 IAM 工具 Keycloak 进行身份验证和授权。我们的人力资源后端应用程序是一个资源服务器。我们正在使用授权代码流,它为我们提供了针对在 Keycloak 上进行身份验证后执行的令牌请求和由 HR UI 执行的回调(UI 我们的 HR UI 应用程序页面)执行的令牌请求的访问令牌到我们放置在我们 HR UI 的浏览器存储中的 HR 后端(资源服务器),它在授权 header 中发送该令牌以从 HR 后端调用受保护的资源,这使我们的应用程序符合 oauth2,现在我的问题是我们如何才能使应用程序符合 OIDC 标准?我可以在初始授权 URL 中发送 openid 范围,但是我将如何处理 id_token 因为我们正在从我们的数据库中获取用户名我们的人力资源后端。在前端解析 ID 令牌并显示名称会使我们的应用程序符合 OIDC 标准,还是我们必须执行任何进一步的优化?
我认为您需要查看 Id-token 的用途。
ID 令牌表示有关用户的详细信息以及更重要的用户身份验证方式(密码、2FA...)。 Id-token 的生命周期通常很短(比如几分钟)。
就像specification描述的那样:
ID 令牌是一个安全令牌,其中包含有关授权服务器在使用客户端时对最终用户进行身份验证的声明,以及其他可能请求的声明。
因此,基本上,您可以随心所欲地使用它,但 Spring OpenID 客户端库通常会为您处理它并提取必要的数据以创建本地用户会话。
您无需执行任何操作即可符合 OIDC 标准,只需使用标准的 openid 连接库并遵循各种最佳实践,然后就可以了。
我们有一个与人力资源相关的应用程序,用户可以在其中填写时间表等。 我们正在使用 oauth2/OIDC 兼容的 IAM 工具 Keycloak 进行身份验证和授权。我们的人力资源后端应用程序是一个资源服务器。我们正在使用授权代码流,它为我们提供了针对在 Keycloak 上进行身份验证后执行的令牌请求和由 HR UI 执行的回调(UI 我们的 HR UI 应用程序页面)执行的令牌请求的访问令牌到我们放置在我们 HR UI 的浏览器存储中的 HR 后端(资源服务器),它在授权 header 中发送该令牌以从 HR 后端调用受保护的资源,这使我们的应用程序符合 oauth2,现在我的问题是我们如何才能使应用程序符合 OIDC 标准?我可以在初始授权 URL 中发送 openid 范围,但是我将如何处理 id_token 因为我们正在从我们的数据库中获取用户名我们的人力资源后端。在前端解析 ID 令牌并显示名称会使我们的应用程序符合 OIDC 标准,还是我们必须执行任何进一步的优化?
我认为您需要查看 Id-token 的用途。
ID 令牌表示有关用户的详细信息以及更重要的用户身份验证方式(密码、2FA...)。 Id-token 的生命周期通常很短(比如几分钟)。
就像specification描述的那样:
ID 令牌是一个安全令牌,其中包含有关授权服务器在使用客户端时对最终用户进行身份验证的声明,以及其他可能请求的声明。
因此,基本上,您可以随心所欲地使用它,但 Spring OpenID 客户端库通常会为您处理它并提取必要的数据以创建本地用户会话。
您无需执行任何操作即可符合 OIDC 标准,只需使用标准的 openid 连接库并遵循各种最佳实践,然后就可以了。