Citrix ADC

Citrix ADC 作为 SAML IdP

SAML IdP(身份提供程序)是部署在客户网络中的 SAML 实体。IdP 接收来自 SAML SP 的请求,并将用户重定向到登录页面,用户必须在登录页面中输入凭据。IdP 通过 Active Directory(外部身份验证服务器,例如 LDAP)对这些凭据进行身份验证,然后生成发送到 SP 的 SAML 断言。

SP 验证令牌,然后授予用户对请求的受保护应用程序的访问权限。

将 Citrix ADC 设备配置为 IdP 时,与相关 SAML IdP 配置文件关联的身份验证虚拟服务器将接收所有请求。

注意

Citrix ADC 设备可以在设备上或任何外部 SAML SP 上配置了 SAML SP 的部署中用作 IdP。

用作 SAML IdP 时,Citrix ADC 设备:

  • 支持能够支持传统登录的所有身份验证方法。

  • 以数字方式签署断言。

  • 支持单重身份验证和双重身份验证。不得将 SAML 配置为辅助身份验证机制。

  • 可以使用 SAML SP 的公钥加密断言。当断言包含敏感信息时,建议执行此操作。

  • 可以配置为仅接受来自 SAML SP 的数字签名请求。

  • 可以使用以下基于 401 的身份验证机制登录 SAML IdP:协商、NTLM 和证书。

  • 除了 NameId 属性外,还可以配置为发送 16 个属性。必须从相应的身份验证服务器中提取属性。对于其中的每个人,您可以在 SAML IdP 配置文件中指定名称、表达式、格式和友好名称。

  • 如果 Citrix ADC 设备配置为多个 SAML SP 的 SAML IdP,用户无需每次进行显式身份验证即可访问不同 SP 上的应用程序。Citrix ADC 设备为第一次身份验证创建会话 cookie,后续的每个请求都使用此 cookie 进行身份验证。

  • 可以在 SAML 断言中发送多值属性。

  • 支持发布和重定向绑定。Citrix ADC 13.0 Build 36.27 中引入了对项目绑定的支持。

  • 可以指定 SAML 断言的有效性。

    如果 Citrix ADC SAML IdP 上的系统时间与对等 SAML SP 上的系统时间不同步,则消息可能会被任何一方失效。为了避免此类情况,您现在可以配置断言有效的持续时间。

    此持续时间称为“倾斜时间”,指定必须接受消息的分钟数。可以在 SAML SP 和 SAML IdP 上配置倾斜时间。

  • 可以配置为仅向在 IdP 上预配置的或信任的 SAML SP 提供断言。对于此配置,SAML IdP 必须具有相关 SAML SP 的服务提供商 ID(或颁发者名称)。

    注意

    继续操作之前,请确保您的身份验证虚拟服务器已链接到 LDAP 身份验证服务器。

使用命令行界面将 Citrix ADC 设备配置为 SAML IdP

  1. 配置 SAML IdP 配置文件。

    示例

    将 Citrix ADC 设备添加为 IdP,并将 SiteMinder 添加为 SP。

    add authentication samlIdPProfile samlIDPProf1 -samlSPCertName siteminder-cert -encryptAssertion ON -samlIdPCertName ns-cert -assertionConsumerServiceURL http://sm-proxy.nsi-test.com:8080/affwebservices/public/saml2assertionconsumer -rejectUnsignedRequests ON -signatureAlg RSA-SHA256 -digestMethod SHA256 –acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example2\.com/cgi/samlauth$#)

    注意事项

    • 在 SAML IdP 配置文件中,配置 ACsurLRule ,该 ACurlRule 采用此 IdP 的适用服务提供商 URL 列表的表达式。此表达式取决于正在使用的 SP。如果 Citrix ADC 配置为 SP,则 ACS URL 将为 https://<SP-domain_name>/cgi/samlauth。Citrix 建议在表达式中包含完整 URL 以进行匹配。

    • SAML 仅支持 RSA 证书。不支持 HSM、FIPS 等其他证书。

    • 您必须使用 “^” 符号(例如:^https)以及字符串末尾的美元符号 “$”(例如:samlauth$)指定域的起始位置。

    有关该命令的更多详细信息,请参阅 https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlActionhttps://support.citrix.com/article/CTX316577

  2. 配置 SAML 身份验证策略并将 SAML IdP 配置文件关联为策略的操作。

    add authentication samlIdPPolicy samlIDPPol1 -rule true -action samlIDPProf1

  3. 将策略绑定到身份验证虚拟服务器。

    bind authentication vserver saml-auth-vserver -policy samlIDPPol1 -priority 100

    有关该命令的更多详细信息,请参阅 https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlIdPProfile

使用 GUI 将 Citrix ADC 设备配置为 SAML IdP

  1. 导航到 安全 > AAA 策略 > 身份验证 > 高级策略 > SAML IdP

  2. 选择 服务器 选项卡,单击 添加,输入以下参数的值,然后单击 创建

    参数描述:

    断言消费者服务 URL-经过身份验证的用户将被重定向到的 URL。

    IdP 证书名称-用于身份验证页面的证书密钥对。

    SP 证书名称-服务提供商的证书在这种情况下,这不需要密钥。

    签名断言- 在将客户端重定向回服务提供商时对断言和响应进行签名的选项。

    发行人名称-标识符。在 SP 和 IdP 上指定的唯一 ID,以帮助彼此识别服务提供商。

    服务提供商 ID-将在 SP 和 IdP 上指定的唯一 ID,以帮助相互识别服务提供商。这可以是任何内容,不需要是下面指定的 URL,但在 SP 和 IdP 配置文件中都需要相同。

    拒绝未签名请求-可以指定选项以确保仅接受使用 SP 证书签名的断言。

    签名算法-用于对 IdP 和 SP 之间的断言进行签名和验证的算法,这在 IdP 和 SP 配置文件中都需要相同。

    摘要方法-用于验证 IdP 和 SP 之间断言的完整性的算法,这在 IdP 和 SP 配置文件中都需要相同。

    SAML 绑定-与 SP 配置文件中描述的相同,SP 和 IdP 上都需要相同。

  3. 将 SAML IdP 策略与身份验证虚拟服务器关联。

    导航到 Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Virtual Servers(虚拟服务器),然后将 SAML IdP 策略与身份验证虚拟服务器相关联。

Citrix ADC 作为 SAML IdP