第 9 章 集成身份提供程序


Identity Broker 是一个中介服务,将服务提供商与身份提供程序连接。身份代理与外部身份提供程序建立关系,以使用供应商的身份访问服务提供商公开的内部服务。

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

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

  • Facebook、Google 或 Artistic 等社交提供商。
  • 用户需要访问您的服务的业务合作伙伴。
  • 您要集成的基于云的身份服务。

通常,红帽在以下协议上构建 Keycloak 基础身份提供程序:

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

9.1. 代理概述

当使用红帽构建的 Keycloak 作为身份代理时,红帽构建的 Keycloak 不会强制用户提供其凭证以在特定域中进行身份验证。Red Hat build of Keycloak 显示他们可以进行身份验证的身份提供程序列表。

如果您配置默认身份提供程序,红帽构建的 Keycloak 会将用户重定向到默认供应商。

注意

不同的协议可能需要不同的身份验证流。红帽构建的 Keycloak 支持的所有身份提供程序都使用以下流程。

身份代理流

Identity broker flow

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

此流的变体是可能的。例如,客户端应用程序可以请求特定的身份提供程序而不是显示它们的列表,或者您可以设置红帽构建的 Keycloak 来强制用户在迭代其身份前提供更多信息。

在身份验证过程结束时,红帽构建的 Keycloak 将其令牌发布到客户端应用程序。客户端应用与外部身份提供程序分开,因此它们无法看到客户端应用程序的协议或其验证用户身份的方式。供应商只需要了解红帽构建的 Keycloak。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.