Citrix ADC

SAML 支持的其他功能

SAML 支持以下功能。

SAML SP 和 IdP 配置的元数据读取和生成支持

Citrix ADC 设备现在支持元数据文件作为 SAML 服务提供程序 (SP) 和身份提供程序 (IdP) 的配置实体的手段。元数据文件是描述实体配置的结构化 XML 文件。SP 和 IdP 的元数据文件是单独的。基于部署,有时,一个 SP 或 IdP 实体可以具有多个元数据文件。 作为管理员,您可以在 Citrix ADC 上导出和导入(SAML SP 和 IdP)元数据文件。 以下部分介绍了 SAML SP 和 IdP 的元数据导出和导入功能。

SAML SP 的元数据导出

考虑一个示例,将 Citrix ADC 配置为 SAML SP,并且 SAML IdP 希望导入包含 Citrix ADC SP 配置的元数据。假定 Citrix ADC 设备已配置为指定 SAML SP 配置的“SamlAction”属性。

要从用户或管理员导出元数据,请查询 Citrix Gateway 或身份验证虚拟服务器,如下所示:

https://vserver.company.com/metadata/samlsp/<action-name>

SAML SP 的元数据导入

目前,Citrix ADC 设备上的 SAML 操作配置采用各种参数。管理员手动指定这些内容。但是,如果涉及到与不同 SAML 系统的互操作,管理员通常不知道术语。如果 IdP 的元数据可用,则可以避免“SamlAction”实体中的大部分配置。事实上,如果给出 IdP 元数据文件,则可能会忽略整个 IdP 特定的配置。“SamlAction”实体现在需要一个附加参数从元数据文件中读取配置。

在 Citrix ADC 设备中导入元数据时,元数据不包含要使用的任何签名算法,而是包含端点详细信息。元数据可以使用某些算法进行签名,这些算法可用于验证元数据本身。算法不存储在 ‘SAMLAction’ 实体中。

因此,您在 ‘Samlaction’ 实体中指定的内容是发送数据时使用的内容。传入数据可以包含不同的算法,供 Citrix ADC 设备处理。

使用命令行界面获取元数据文件。

set samlAction <name> [-metadataUrl <url> [-metadataRefreshInterval <int>] https://idp.citrix.com/samlidp/metadata.xml

注意

元数据清新间隔参数是从指定的元数据 URL 获取元数据信息的间隔(以分钟为单位)。默认值 36000。

SAML IdP 的元数据导入

“SAMLIDPProfile”参数需要一个新的参数来读取特定于 SP 的整个配置。通过将 SP 特定属性替换为 SP 元数据文件,可以简化 SAML IdP 配置。此文件通过 HTTP 查询。

使用命令行界面从元数据文件读取:

set samlIdPProfile <name> [-metadataUrl <url>] [-metadataRefreshInterval <int>]

SAML 身份验证的名称值属性支持

您现在可以使用唯一名称和值配置 SAML 身份验证属性。名称在 SAML 操作参数中进行配置,并通过查询名称获取值。通过指定 name 属性值,管理员可以轻松搜索与属性名称关联的属性值。此外,管理员不再需要单独记住属性的值。

重要

  • 在 SAML 操作命令中,您最多可以配置 64 个由逗号分隔的属性,总大小小于 2048 字节。
  • Citrix 建议您使用属性列表。如果提取的属性大小较大,则使用“属性 1 到属性 16”将导致会话失败。

使用 CLI 配置名称-值属性

在命令提示符下,键入:

add authentication samlAction <name> [-Attributes <string>]

示例:

add authentication samlAction samlAct1 -attributes “mail,sn,userprincipalName”

针对 SAML IdP 的断言使用者服务 URL 支持

配置为 SAML 身份提供程序 (IdP) 的 Citrix ADC 设备现在支持断言消费者服务 (ACS) 索引以处理 SAML 服务提供程序 (SP) 请求。SAML IdP 从 SP 元数据导入 ACS 索引配置,或允许手动输入 ACS 索引信息。 下表列出了一些特定于将 Citrix ADC 设备用作 SAML SP 或 SAML IdP 的部署的文章。

下表列出了一些特定于将 Citrix ADC 设备用作 SAML SP 或 SAML IdP 的部署的文章。

SAML SP SAML IdP 信息链接
Citrix ADC Microsoft Azure AD Citrix Support
Okta Citrix ADC Citrix Support
AWS Citrix ADC Citrix Support

有关其他特定部署的一些信息:

对身份验证机制的 WebView 凭据类型支持

Citrix ADC 设备的身份验证现在可以支持 AUTHv3 协议。AUTHv3 协议中的 WebView 凭据类型支持所有类型的身份验证机制(包括 SAML 和 OAuth)。WebView 凭据类型是 AUTHv3 的一部分,该凭据由 Citrix Receiver 和浏览器在 Web 应用程序中实现。

以下示例说明了通过 Citrix Gateway 和 Citrix Receiver 发生的 WebView 事件流:

  1. Citrix Receiver 将与 Citrix Gateway 协商以获得 AUTHv3 协议支持。
  2. Citrix ADC 设备响应积极,并建议特定的起始 URL。
  3. 然后 Citrix Receiver 连接到特定端点 (URL)。
  4. Citrix Gateway 向客户端发送响应以启动 WebView。
  5. Citrix Receiver 启动 WebView 并将初始请求发送到 Citrix ADC 设备。
  6. Citrix ADC 设备将 URI 重定向到浏览器登录端点。
  7. 身份验证完成后,Citrix ADC 设备将完成响应发送到 WebView。
  8. WebView 现在退出并将控制权交还给 Citrix Receiver,以继续建立会话的 AUTHv3 协议。

SAML SP 中的 SessionIndex 大小的增加

SAML 服务提供程序 (SP) 的 SessionIndex 大小增加到 96 个字节。以前,SessionIndex 的默认最大大小为 63 个字节。

注意

NetScaler 13.0 版本中引入的支持 36.x

SAML SP 的自定义身份验证类参考支持

您可以在 SAML 操作命令中配置自定义身份验证类引用属性。使用自定义身份验证类引用属性,可以在相应的 SAML 标记中自定义类名称。自定义身份验证类引用属性和命名空间作为 SAML SP 身份验证请求的一部分发送到 SAML IdP。

以前,使用 SAML 操作命令,只能配置在 authnCtxClassRef 属性中定义的一组预定义类。

重要

配置 customAuthnCtxClassRef 属性时,请确保以下事项:

  • 类的名称必须包含字母数字字符或带有正确 XML 标记的有效 URL。
  • 如果必须配置多个自定义类,则每个类必须用逗号分隔

使用 CLI 配置 customAuthnCtxClassRef 属性

在命令提示符下,键入:

  • add authentication samlAction <name> [-customAuthnCtxClassRef <string>]
  • set authentication samlAction <name> [-customAuthnCtxClassRef <string>]

示例:

  • add authentication samlAction samlact1 –customAuthnCtxClassRef http://www.class1.com/LoA1,http://www.class2.com/LoA2
  • set authentication samlAction samlact2 –customAuthnCtxClassRef http://www.class3.com/LoA1,http://www.class4.com/LoA2

使用 GUI 配置 customAuthnCtxClassRef 属性

  1. 导航到 Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Policies(策略)> Authentication(身份验证)> Advanced Policies(高级策略)> Actions(操作)> SAML
  2. 在 SAML 页面上,选择“服务器”选项卡,然后单击“添加”。
  3. Create Authentication SAML Server(创建身份验证 SAML 服务器)页面上,输入 SAML 操作的名称。
  4. 向下滚动以配置 Custom Authentication Class Types(自定义身份验证类类型)部分中的类类型 。

    自定义身份验证类类型

支持 SAML IdP 中的工件绑定

配置为 SAML 身份提供程序 (IdP) 的 Citrix ADC 设备支持工件绑定。工件绑定增强了 SAML IdP 的安全性,并限制恶意用户检查断言。

针对 SAML IdP 的断言使用者服务 URL 支持

配置为 SAML 身份提供程序 (IdP) 的 Citrix ADC 设备现在支持断言消费者服务 (ACS) 索引以处理 SAML 服务提供程序 (SP) 请求。SAML IdP 从 SP 元数据导入 ACS 索引配置,或允许手动输入 ACS 索引信息。

FIPS 卸载支持

用作 SAML 服务提供商的 Citrix ADC MPX FIPS 设备现在支持加密断言。此外,作为 SAML 服务提供商或 SAML 身份提供商的 Citrix ADC MPX FIPS 设备现在可以配置为在 FIPS 硬件上使用 SHA2 算法。

注意

在 FIPS 模式下,仅支持 RSA-V1_5 算法作为密钥传输算法。

使用命令行界面配置 FIPS 卸载支持:

  1. 添加 SSL FIPS

    add ssl fipsKey fips-key

  2. 创建 CSR 并在 CA 服务器上使用它来生成证书。然后,您可以在 /nsconfig/ssl中复制证书。让我们假设该文件是 fips3cert.cer

    add ssl certKey fips-cert -cert fips3cert.cer -fipsKey fips-key<!--NeedCopy-->

  3. 在 SAML SP 模块的 SAML 操作中指定此证书

    set samlAction <name> -samlSigningCertName fips-cert<!--NeedCopy-->

  4. 使用 SAML IDP 模块的 SAML 配置文件中的证书

    set samlidpprofile fipstest –samlIdpCertName fips-cert<!--NeedCopy-->

常见的 SAML 术语

以下是一些常见的 SAML 术语:

  • 断言: SAML 断言是身份提供商在对用户进行身份验证后返回给服务提供商的 XML 文档。按照 SAML 标准的定义,断言具有非常特定的结构。

  • 断言的类型: 以下是断言的类型。

    • 身份验证-用户在特定时间通过特定方式进行身份验证
    • 授权-用户被授予或拒绝访问指定资源
    • 属性-用户与提供的属性相关联
  • 断言使用者服务 (ACS): 负责接收和解析 SAML 断言的服务提供商的终端节点 (URL)

  • 受众限制: SAML 断言中的一个值,用于指定断言的目标对象(以及只有谁)。 “受众”将是服务提供商,通常是一个 URL,但在技术上可以格式化为任何数据串。

  • 身份提供商 (IdP): 就 SAML 而言,身份提供商是根据服务提供商的请求验证用户身份的实体。

    身份提供商负责维护和验证用户的身份

  • 服务提供商 (SP): 就 SAML 而言,服务提供商 (SP) 向用户提供服务,并允许用户使用 SAML 登录。当用户尝试登录时,SP 会向身份提供商 (IdP) 发送 SAML 身份验证请求

  • SAML 绑定: SAML 请求者和响应者通过交换消息进行沟通。传输这些消息的机制称为 SAML 绑定。

  • HTTP Artifact: SAML 协议支持的绑定选项之一。HTTP Artifact 在 SAML 请求者和响应方使用 HTTP User-Agent 并且出于技术或安全原因不想传输整个消息的情况下非常有用。而是发送一个 SAML Artifact,这是完整信息的唯一 ID。然后,IdP 可以使用 Artifact 检索完整信息。在项目处于待处理状态时,工件发行人必须保持状态。必须设置工件解析服务 (ARS)。

    HTTP Artifact 将工件作为查询参数发送。

  • HTTP POST: SAML 协议支持的绑定选项之一。

    HTTP POST 将消息内容作为 POST 参数发送到有效负载中。

  • HTTP 重定向: SAML 协议支持的绑定选项之一。

    使用 HTTP 重定向时,服务提供商会将用户重定向到发生登录的身份提供商,身份提供商会将用户重定向回服务提供商。HTTP 重定向需要用户代理(浏览器)的干预。

    HTTP 重定向将在 URL 中发送消息内容。因此,它不能用于 SAML 响应,因为响应的大小通常会超过大多数浏览器允许的 URL 长度。

    注意: Citrix ADC 设备在注销期间支持开机自检和重定向绑定。

  • 元数据: 元数据是 SP 和 IDP 中的配置数据,用于了解如何相互通信,这些数据将在 XML 标准中

其他与 SAML 身份验证相关的 Citrix 文章

您可能会发现以下与 SAML 身份验证相关的文章很有用。