第 5 章 Identity Brokering API
红帽单点登录可将身份验证委派给用于登录的父 IDP。典型的例子是您希望用户能够通过社交供应商(如 Facebook 或 Google)登录。您还可以将现有帐户链接到代理的 IDP。本节介绍了应用程序可使用的一些 API,因为它与身份代理相关。
5.1. 检索外部 IDP 令牌
红帽单点登录允许您使用外部 IDP 存储来自身份验证流程的令牌和响应。为此,您可以使用 IDP 设置页面中的 Store Token
配置选项。
应用程序代码可以检索这些令牌和响应,以拉取额外的用户信息,或者安全地调用外部 IDP 上的请求。例如,应用程序可能希望使用 Google 令牌在其他 Google 服务和 REST API 上调用。要检索特定身份提供程序的令牌,您需要按照以下方式发送请求:
GET /auth/realms/{realm}/broker/{provider_alias}/token HTTP/1.1 Host: localhost:8080 Authorization: Bearer <KEYCLOAK ACCESS TOKEN>
应用程序必须通过 Red Hat Single Sign-On 进行身份验证,并获得了访问令牌。此访问令牌需要设置 broker
客户端级角色 read-token
。这意味着用户必须具有此角色的角色映射,客户端应用必须在其范围内拥有该角色。在这种情况下,假设您在 Red Hat Single Sign-On 中访问受保护的服务,您需要在用户身份验证期间发送由 Red Hat Single Sign-On 发布的访问令牌。在代理配置页面中,您可以通过打开 Stored Tokens Readable
交换机,自动将此角色分配给新导入的用户。
这些外部令牌可以通过提供程序再次登录,或使用发起的帐户链接 API 来重新建立这些外部令牌。