ADC

SAML 支持的更多功能

SAML 支持以下功能。

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

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

SAML SP 的元数据导出

考虑一个示例,其中 NetScaler 配置为 SAML SP,而 SAML IdP 想要导入包含 NetScaler SP 配置的元数据。假设 NetScaler 设备已经配置了指定 SAML SP 配置的“samlAction”属性。

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

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

SAML SP 的元数据导入

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

在 NetScaler 设备中导入元数据时,元数据不包含要使用的任何签名算法,它包含终端节点详细信息。可以使用某些算法对元数据进行签名,这些算法可用于验证元数据本身。这些算法不会存储在“samlAction”实体中。

因此,您在“samlAction”实体中指定的就是发送数据时使用的实体。传入数据可能包含不同的算法,供 NetScaler 设备处理。

您最多可以导入 64 K 字节的元数据。

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

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

注意

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

SAML IdP 的元数据导入

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

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

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

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

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

重要

  • 在 samlAction 命令中,您最多可以配置 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) 的 NetScaler 设备现在支持声明使用者服务 (ACS) 索引来处理 SAML 服务提供商 (SP) 请求。SAML IdP 从 SP 元数据中导入 ACS 索引配置或允许手动输入 ACS 索引信息。 下表列出了一些特定于将 NetScaler 设备用作 SAML SP 或 SAML IdP 的部署的文章。

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

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

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

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

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

SAML SP 中的 SessionIndex 大小的增加

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

注意

NetScaler 13.0 Build 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) 的 NetScaler 设备支持构件绑定。构件绑定增强了 SAML IdP 的安全性,并限制了恶意用户检查断言。

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

配置为 SAML 身份提供程序 (IdP) 的 NetScaler 设备现在支持声明使用者服务 (ACS) 索引来处理 SAML 服务提供商 (SP) 请求。SAML IdP 从 SP 元数据中导入 ACS 索引配置或允许手动输入 ACS 索引信息。

FIPS 卸载支持

用作 SAML 服务提供商的 NetScaler MPX FIPS 设备现在支持加密断言。此外,作为 SAML 服务提供商或 SAML 身份提供商的 NetScaler 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 模块中使用 samlIdpProfile 中的证书

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

    HTTP Artifact 将伪影作为查询参数发送。

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

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

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

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

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

    注意: NetScaler 设备在注销期间支持 POST 和重定向绑定。

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

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

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