搜索

10.2. SAML

download PDF

SAML 2.0 与 OIDC 类似,但更成熟。它从 SOAP 和 Web 服务消息传递规格中分离,因此通常比 OIDC 更详细。SAML 2.0 是一个身份验证协议,可在身份验证服务器和应用程序间交换 XML 文档。XML 签名和加密用于验证请求和响应。

通常,SAML 实施两个用例。

第一个用例是请求 Red Hat Single Sign-On 服务器验证用户的应用程序。成功登录后,应用程序将收到 XML 文档。本文档包含指定用户属性的 SAML 断言。域对文档进行数字签名,该文档包含应用用于访问应用的访问信息(如用户角色映射)。

第二个用例是访问远程服务的客户端。客户端请求来自 Red Hat Single Sign-On 的 SAML 断言,以代表用户调用远程服务。

10.2.1. SAML 绑定

红帽单点登录支持三种绑定类型:

10.2.1.1. 重定向绑定

重定向 绑定使用一系列浏览器重定向 URI 来交换信息。

  1. 用户使用浏览器连接至应用。应用程序检测到用户没有通过身份验证。
  2. 应用程序生成 XML 身份验证请求文档,并将其编码为 URI 中的查询参数。URI 用于重定向到 Red Hat Single Sign-On 服务器。根据您的设置,应用程序也可以对 XML 文档进行数字签名,并将签名作为查询参数包含在重定向 URI 到 Red Hat Single Sign-On 中。此签名用于验证发送请求的客户端。
  3. 浏览器重定向到 Red Hat Single Sign-On。
  4. 如果需要,服务器提取 XML 身份验证请求文档并验证数字签名。
  5. 用户输入其身份验证凭据。
  6. 身份验证后,服务器会生成 XML 身份验证响应文档。本文档包含包含用户的 SAML 断言,其中包含有关用户名、地址、电子邮件以及用户所拥有的角色映射的元数据。文档通常使用 XML 签名进行数字签名,也可以加密。
  7. XML 身份验证响应文档在重定向 URI 中以查询参数形式编码。URI 使浏览器返回到应用程序。数字签名还包含为查询参数。
  8. 应用程序接收重定向 URI,并提取 XML 文档。
  9. 应用程序会验证 realm 的签名,以确保它收到有效的身份验证响应。SAML 断言内的信息用于做出访问决策或显示用户数据。

10.2.1.2. POST 绑定

POST 绑定与 Redirect 绑定类似,但 POST 绑定使用 POST 请求交换 XML 文档,而不是使用 GET 请求。POST Binding 使用 JavaScript 使浏览器在交换文档时向 Red Hat Single Sign-On 服务器或应用程序发送 POST 请求。HTTP 使用 HTML 文档响应,其中包含有嵌入式 JavaScript 的 HTML 表单。当页面加载时,JavaScript 会自动调用表单。

建议因为两个限制而使用 POST 绑定:

  • 安全 baseDomain-sandboxedWith Redirect 绑定,SAML 响应是 URL 的一部分。不太安全,因为可以在日志中捕获响应。
  • 在 HTTP 有效负载中调整文档的大小提供了比在有限 URL 中大量数据的范围。

10.2.1.3. ECP

增强的客户端或代理(ECP)是一个 SAML v.2.0 配置集,它允许在 Web 浏览器上下文外交换 SAML 属性。它通常由 REST 或 SOAP 的客户端使用。

10.2.2. Red Hat Single Sign-On Server SAML URI Endpoints

Red Hat Single Sign-On 对所有 SAML 请求都有一个端点。

http(s)://authserver.host/auth/realms/{realm-name}/protocol/saml

所有绑定都使用此端点。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.