第 9 章 集成身份提供程序

Identity Broker 是使用身份提供程序连接服务提供商的中间服务。身份代理创建与外部身份提供程序的关系,以使用提供程序的身份访问服务提供商所公开的内部服务。

从用户的角度来看,身份代理提供了一种以用户为中心的集中式方式,以管理安全域和域的身份。您可以用来自身份提供程序的一个或多个身份链接帐户,或者根据它们的身份信息创建帐户。

身份提供程序派生自用来验证并向用户发送身份验证和授权信息的特定协议。它可以是:

  • 社交供应商,如 Facebook、Google 或 Twitter。
  • 用户需要访问您的服务的业务合作伙伴。
  • 您希望集成基于云的身份服务。

通常,Red Hat Single Sign-Ons 身份提供程序在以下协议中:

  • SAML v2.0
  • OpenID Connect v1.0
  • OAuth v2.0

9.1. Brokering 概述

当将 Red Hat Single Sign-On 用作身份提供程序时,Red Hat Single Sign-On 不会强制用户提供他们在特定域中进行身份验证的凭证。Red Hat Single Sign-On 显示可以进行身份验证的身份提供商列表。

如果配置默认身份提供程序,Red Hat Single Sign-On 会将用户重定向到默认供应商。

注意

不同的协议可能需要不同的身份验证流程。Red Hat Single Sign-On 支持的所有身份提供程序都使用以下流:

身份代理流

Identity broker flow

  1. 未经身份验证的用户在客户端应用程序中请求受保护的资源。
  2. 客户端应用将用户重定向到 Red Hat Single Sign-On 以进行身份验证。
  3. Red Hat Single Sign-On 将显示域中配置的身份提供程序列表。
  4. 用户通过点击其按钮或链接来选择其中一个身份提供程序。
  5. Red Hat Single Sign-On 会向目标身份提供程序发出身份验证请求,并将用户重定向到身份提供程序的登录页面。管理员已经为 Admin Console 的身份供应商设置了连接属性和其他配置选项。
  6. 用户提供凭证或同意与身份提供程序进行身份验证。
  7. 在身份验证成功后,用户通过身份验证响应重新重定向到 Red Hat Single Sign-On。通常,响应中包含一个安全令牌,供红帽单点登录用于信任身份提供程序的身份验证并检索用户信息。
  8. Red Hat Single Sign-On 会检查来自身份提供程序的响应是否有效。如果有效,Red Hat Single Sign-On 导入并创建用户(如果用户尚不存在)。如果令牌不包含该信息,则 Red Hat Single Sign-On 可能会向身份提供程序寻求更多信息。这个行为是 身份联合。如果用户已存在,Red Hat Single Sign-On 可能会要求用户将从身份提供程序中返回的身份与现有帐户连接。这个行为是 链接 的帐户。使用红帽单点登录,您可以配置 帐户链接 并在第一个 登录流中指定它。在这一步中,Red Hat Single Sign-On 会验证用户并发出令牌来访问服务提供商中请求的资源。
  9. 当用户验证时,Red Hat Single Sign-On 通过发送之前在本地身份验证期间发布的令牌,将用户重定向到服务提供商。
  10. 服务提供商从 Red Hat Single Sign-On 接收令牌,并允许访问受保护的资源。

这种流程的变体是可能的。例如,客户端应用程序可以请求特定的身份提供程序,而不是显示它们的列表,也可以设置 Red Hat Single Sign-On 来强制用户在重新生成身份前提供其他信息。

在身份验证过程结束时,Red Hat Single Sign-On 会将令牌附加到客户端应用程序。客户端应用与外部身份提供程序分离,因此它们无法看到客户端应用的协议或如何验证用户身份。供应商仅需要了解 Red Hat Single Sign-On。