搜索

12.2. 创建 SAML 客户端

download PDF

Red Hat Single Sign-On 支持 SAML 2.0 进行注册的应用程序。支持 POST 和 Redirect 绑定。您可以选择需要客户端签名验证。您还可以具有服务器符号和/或加密响应。

流程

  1. 点菜单中的 Clients
  2. Create 进入 Add Client 页面。

    添加客户端

    add client saml

  3. 输入客户端的客户端 ID。这通常是 URL,是应用程序发送的 SAML 请求中预期的 签发者 值。
  4. 在客户端 协议下拉列表中, 选择 saml
  5. 输入 Client SAML Endpoint URL。这个 URL 是您希望 Red Hat Single Sign-On 服务器发送 SAML 请求和响应的地方。通常,应用程序有一个处理 SAML 请求的 URL。可在客户端的 Settings 选项卡中设置多个 URL。
  6. Save。此操作会创建客户端,并将您带到 Settings 选项卡。

    客户端设置

    client settings saml

    以下列表描述了每个设置:

    客户端 ID
    OIDC 请求和 Red Hat Single Sign-On 数据库中使用的 alpha-numeric ID 字符串来识别客户端。这个值必须与 AuthNRequests 发送的签发值匹配。Red Hat Single Sign-On 从 Authn SAML 请求拉取签发者,并将其与客户端匹配。
    Name
    Red Hat Single Sign-On UI 屏幕中的客户端名称。要本地化名称,请设置替换字符串值。例如,字符串值,如 ${myapp}。如需更多信息,请参阅 服务器开发人员指南
    描述
    客户端的描述。此设置也可以本地化。
    Enabled
    当设置为 OFF 时,客户端无法请求身份验证。
    需要同意
    当设置为 ON 时,用户会看到一个授权对该应用的访问权限的同意页面。该页面也显示客户端可以访问的信息的元数据。如果您曾对 Facebook 进行了一个社交登录,您通常会看到一个类似的页面。红帽单点登录提供相同的功能。
    包括 AuthnStatement
    SAML 登录响应可能会指定所用的身份验证方法,如密码,以及登录和会话过期的时间戳。包括 Authn Statement 会被默认启用,以便在登录响应中包含 AuthnStatement 元素。将其设置为 OFF 可防止客户端确定最大会话长度,它们可以创建不过期的客户端会话。
    签署文档
    当设置为 ON 时,Red Hat Single Sign-On 使用域私钥为文档签名。
    优化 REDIRECT 签名密钥查找

    当设置为 ON 时,SAML 协议信息包括 Red Hat Single Sign-On 原生扩展。这个扩展包含一个带有签名密钥 ID 的提示。SP 使用扩展进行签名验证,而不是尝试使用密钥验证签名。

    这个选项适用于在查询参数中传输签名的 REDIRECT 绑定,且此信息不会在签名信息中找到。这只适用于 POST 绑定消息,其中密钥 ID 始终包含在文档签名中。

    当 Red Hat Single Sign-On 服务器和适配器提供 IDP 和 SP 时,使用这个选项。只有在将 Sign Documents 设为 ON 时,这个选项才有意义。

    Signsertions
    断言是签名并嵌入在 SAML XML Auth 响应中。
    签名算法
    签名 SAML 文档中使用的算法。
    SAML 签名密钥名称

    使用 POST 绑定发送签名的 SAML 文档包含 KeyName 元素中的签名密钥识别。此操作可由 SAML Signature Key Name 选项控制。此选项控制关键字 的内容

    • KEY_id The KeyName 包含密钥 ID。此选项是默认选项。
    • CERT_SUBJECTKeyName 包含与域密钥对应的证书的主题。Microsoft Active Directory Federation 服务预期这个选项。
    • NONE The KeyName hint 在 SAML 消息中完全省略。
    规范方法
    XML 签名的规范方法。
    encrypt Assertions
    使用 realms 私钥加密 SAML 文档中的断言。AES 算法使用密钥大小为 128 位。
    需要客户端签名
    如果需要启用客户端签名,则应该签署来自客户端的文档。Red Hat Single Sign-On 将使用在 Keys 选项卡中设置的客户端公钥或证书验证此签名。
    强制 POST 绑定
    默认情况下,Red Hat Single Sign-On 会使用原始请求的初始 SAML 绑定进行响应。通过启用 Force POST Binding,Red Hat Single Sign-On 会使用 SAML POST 绑定响应,即使原始请求使用了重定向绑定。
    前端频道注销
    如果启用了 Front Channel Logout,应用程序需要浏览器重定向才能执行注销。例如,应用可能需要对 Cookie 进行重置,而只能通过重定向进行。如果禁用 Front Channel Logout,Red Hat Single Sign-On 会调用后台 SAML 请求退出应用程序。
    强制名称 ID 格式
    如果请求具有名称 ID 策略,忽略它并使用 名称 ID 格式 下管理控制台中配置的值。
    允许 ECP 流
    如果为 true,则允许此应用程序使用 SAML ECP 配置集进行身份验证。
    名称 ID 格式
    主题的 Name ID 格式。如果没有在请求中指定名称 ID 策略,则使用此格式,或者 Force Name ID Format 属性设置为 ON。
    Root URL
    当 Red Hat Single Sign-On 使用配置的相对 URL 时,这个值会与 URL 的前面。
    有效的 Redirect URI
    输入 URL 模式,然后单击要添加的 + 符号。点击要删除的 - 符号。点 Save 保存更改。通配符值只能在 URL 的末尾进行。例如: http://host.com/*$$。当不正确的 SAML 端点没有注册时,会使用此字段,Red Hat Single Sign-On 会拉取 Assertion Consumer URL。
    基本 URL
    如果 Red Hat Single Sign-On 需要链接到客户端,则会使用这个 URL。

徽标 URL

引用客户端应用程序徽标的 URL。

策略 URL

Relying 客户端向 End-User 提供相关 URL 来阅读如何使用配置集数据。

服务 URL 条款

重复客户端为最终用户提供的 URL,可阅读有关相应服务条款的 URL。

Master SAML 处理 URL

这个 URL 用于所有 SAML 请求,响应会被定向到 SP。它被用作 Assertion Consumer Service URL 和 Single Logout Service URL。

如果登录请求包含 Assertion Consumer Service URL,则这些登录请求将优先使用。这个 URL 必须通过注册的 Valid Redirect URI 模式进行验证。

Assertion Consumer Service POST Binding URL
Assertion Consumer Service 的 POST Binding URL。
Assertion Consumer Service Redirect Binding URL
重定向 Assertion Consumer Service 的绑定 URL。
注销 Service POST Binding URL
Logout Service 的 POST Binding URL。
Logout Service Redirect Binding URL
重定向 Logout 服务的绑定 URL。
logout Service Artifact Binding URL
Logout Service 的构件绑定 URL。当与 Force Artifact Binding 选项结合使用时,在登录和注销流中都强制使用 Artifact 绑定。除非设置了此属性,否则不会用于注销工件 绑定。
工件绑定 URL
将 HTTP 构件消息发送到的 URL。
工件解析服务
客户端 SOAP 端点的 URL,用于将 ArtifactResolve 消息发送到.

12.2.1. IDP Initiated 登录

IDP Initiated Login 是一个功能,允许您在 Red Hat Single Sign-On 服务器上设置端点,供您登录到特定应用程序/客户端。在客户端的 Settings 选项卡中,您需要指定 IDP Initiated SSO URL Name。这是一个简单的字符串,其中没有空格。在此之后,您可以在以下 URL 引用您的客户端: root/auth/realms/{realm}/protocol/saml/clients/{url-name}

IDP 启动登录实施首选通过 REDIRECT 绑定 POST (检查 saml 绑定 以了解更多信息)。因此,最终的绑定和 SP URL 会被选择,其方式如下:

  1. 如果定义了特定的 Assertion Consumer Service POST Binding URL (在 Fine Grain SAML Endpoint Configuration 部分) POST 绑定通过该 URL 使用。
  2. 如果指定了常规 Master SAML 处理 URL,则再次通过这个通用 URL 使用 POST 绑定。
  3. 最后的手段是,如果配置了 Assertion Consumer Service Redirect Binding URL (在 Fine Grain SAML Endpoint Configuration中) REDIRECT 绑定与该 URL 一起使用。

如果您的客户端需要特殊的中继状态,也可以在 IDP Initiated SSO Relay State 字段中的 Settings 选项卡中配置它。或者,浏览器可以在 RelayState 查询参数中指定转发状态,即 root/auth/realms/{realm}/protocol/saml/clients/{url-name}?RelayState=thestate

在使用 身份代理 时,可以从外部 IDP 为客户端设置 IDP 启动登录。根据上述所述,实际客户端在代理 IDP 中为 IDP 设置 IDP。外部 IDP 必须为应用程序 IDP 发起的登录设置客户端,该登录将指向指向代理的特殊 URL,并在代理 IDP 中代表所选客户端 IDP 的 IDP 发起的登录端点。这意味着,在外部 IDP 的客户端设置中:

  • IDP Initiated SSO URL Name 设置为将作为 IDP Initiated Login 初始点发布的名称。
  • Fine Grain SAML Endpoint Configuration 部分中的 assertion Consumer Service POST Binding URL 必须设置为以下 URL: broker-root/auth/realms/{broker-realm}/broker/{idp-name}/endpoint/clients/{client-id},其中:

    • broker-root 是基本代理 URL
    • broker-realm 是声明外部 IDP 的代理的域名称
    • IdP-name 是代理的外部 IDP 的名称
    • client-id 是代理上定义的 SAML 客户端的 IDP Initiated SSO URL Name 属性的值。此客户端将提供给来自外部 IDP 的 IDP 发起的登录。

请注意,您可以将基本的客户端设置从代理 IDP 导入到外部 IDP 的客户端设置中 - 仅使用代理 IDP 中的身份提供程序设置中的 SP 描述符,并将 客户端/客户端ID 添加到端点 URL 中。

12.2.2. 使用实体描述符创建客户端

您可以使用标准 SAML 实体描述符 XML 文件导入客户端,而不必手动注册 SAML 2.0 客户端。

Add Client 页面包含一个 Import 选项。

添加客户端

add client saml

流程

  1. Select File
  2. 加载包含 XML 实体描述符信息的文件。
  3. 检查信息以确保一切设置正确无误。

有些 SAML 客户端适配器(如 mod-auth-mellon )需要 IDP 的 XML 实体描述符。您可以通过进入这个 URL 来查找这个描述符:

root/auth/realms/{realm}/protocol/saml/descriptor

其中 realm 是您的客户端的域。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.