SAML 身份验证

安全断言标记语言 (SAML) 是一种基于 XML 的身份验证机制,提供单点登录功能,并由 OASIS 安全服务技术委员会定义。

为什么使用 SAML 身份验证

考虑服务提供商 (LargeProvider) 为客户(BigCompany)承载多个应用程序的场景。BigCompany 的用户必须无缝访问这些应用程序。在传统的设置中,LargeProvider 需要维护 BigCompany 的数据库用户。这引起以下每个利益相关者的一些关注意:

  • LargeProvider 必须确保用户数据的安全。
  • BigCompany 必须验证用户,并保持用户数据最新,不仅在自己的数据库中,而且在由 LargeProvider 维护的用户数据库中。例如,从 BigCompany 数据库中删除的用户也必须从 LargeProvider 数据库中删除。
  • 用户必须单独登录到每个托管应用程序。

SAML 身份验证机制提供了一种替代方法。下面的部署图显示了 SAML 的工作原理。

本地化后的图片

传统认证机制引起的问题解决如下:

  • LargeProvider 不必为 BigCompany 用户维护数据库。从身份管理中解脱出来,大提供商可以专注于提供更好的服务。
  • BigCompany 不承担确保 LargeProvider 用户数据库与其自己的用户数据库保持同步的负担。
  • 用户可以登录一次,登录到 LargeProvider 上托管的一个应用程序,并自动登录到托管该位置的其他应用程序。

Citrix ADC 设备可以部署为 SAML 服务提供程序 (SP) 和 SAML 身份提供程序 (IdP)。阅读相关主题,了解必须在 Citrix ADC 设备上执行的配置。

配置为 SAML 服务提供商的 Citrix ADC 设备现在可以强制执行受众限制检查。只有当 SAML 回复方是至少一个指定受众的成员时,受众限制条件才会计算为“有效”。

您可以将 Citrix ADC 设备配置为将 SAML 断言中的属性解析为组属性。将它们解析为组属性使设备能够将策略绑定到组。

注意

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

使用命令行界面配置 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

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

    set samlAction <name> -samlSigningCertName fips-cert

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

    set samlidpprofile fipstest –samlIdpCertName fips-cert

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

SAML SP SAML IdP 信息链接
Citrix ADC Citrix AppController Z3 Citrix 支持
Citrix ADC CloudGateway Citrix 支持
Citrix ADC Microsoft AD FS 3.0 Citrix 支持
Citrix ADC Shibboleth Citrix 支持
Citrix ADC Shibboleth(使用 SAML 单注销配置) Citrix 支持
Siteminder Citrix ADC Citrix 支持
ShareFile Citrix ADC Citrix 支持

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

对身份验证机制的 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 和 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 配置的“SAML 操作”属性。要从用户或管理员导出元数据,请查询 Citrix Gateway 或身份验证虚拟服务器,如下所示:

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

SAML SP 的元数据导入

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

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

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”