配置 SAML 身份验证

Last published : Oct 14, 2026
安全断言标记语言 (SAML) 是一种基于 XML 的标准,用于在身份提供者 (IdP) 和服务提供者之间交换身份验证和授权信息。NetScaler Gateway 支持 SAML 身份验证。
配置 SAML 身份验证时,您需要创建以下设置:
  • IdP 证书名称。这是与 IdP 上的私钥对应的公钥。
  • 重定向 URL。这是身份验证 IdP 的 URL。未通过身份验证的用户将被重定向到此 URL。
  • 用户字段。如果 IdP 以不同于 Subject 标签的 NameIdentifier 标签的格式发送用户名,您可以使用此字段提取用户名。这是一个可选设置。
  • 签名证书名称。这是 NetScaler Gateway 服务器的私钥,用于对发送到 IdP 的身份验证请求进行签名。如果未配置证书名称,则断言将未签名发送,或者身份验证请求将被拒绝。
  • SAML 颁发者名称。此值在发送身份验证请求时使用。颁发者字段中必须有一个唯一名称,以表示发送断言的机构。这是一个可选字段。
  • 默认身份验证组。这是身份验证服务器上用户从中进行身份验证的组。
  • 双因素。此设置启用或禁用双因素身份验证。
  • 拒绝未签名断言。如果启用,当未配置签名证书名称时,NetScaler Gateway 将拒绝用户身份验证。
NetScaler Gateway 支持 HTTP POST 绑定。在此绑定中,发送方以包含所需信息的表单自动提交(form-auto post)的 200 OK 响应用户。具体来说,默认表单必须包含两个名为 SAMLRequest 和 SAMLResponse 的隐藏字段,具体取决于表单是请求还是响应。表单还包括 RelayState,它是发送方用于发送任意信息的状态或信息,这些信息不会由依赖方处理。依赖方将信息发送回去,以便当发送方收到断言以及 RelayState 时,发送方就知道下一步该怎么做。建议您加密或混淆 RelayState。
注意
  • 当 NetScaler Gateway 用作 Citrix Cloud 的 IdP 时,您无需在 NetScaler Gateway 上配置 RelayState 规则。
  • 在 IdP 链式连接的情况下,只需在第一个 SAML 策略上配置 RelayState 规则即可。在此上下文中,IdP 链式连接是指配置的 SAML 操作引用包含另一个 SAML 操作的身份验证虚拟服务器 IdP 的场景。

配置 Active Directory 联合身份验证服务 2.0

您可以在任何用作联合服务器角色的 Windows Server 2008 或 Windows Server 2012 计算机上配置 Active Directory 联合身份验证服务 (AD FS) 2.0。将 ADFS 服务器配置为与 NetScaler Gateway 兼容时,需要使用 Windows Server 2008 或 Windows Server 2012 中的依赖方信任向导配置以下参数。
Windows Server 2008 配置参数:
  • 依赖方信任。您提供 NetScaler Gateway 元数据文件位置,例如 https://vserver.fqdn.com/ns.metadata.xml,其中 vserver.fqdn.com 是 NetScaler Gateway 虚拟服务器的完全限定域名 (FQDN)。您可以在绑定到虚拟服务器的服务器证书上找到 FQDN。
  • 授权规则。您可以允许或拒绝用户访问依赖方。
Windows Server 2012 配置参数:
  • 依赖方信任。您提供 NetScaler Gateway 元数据文件位置,例如 https://vserver.fqdn.com/ns.metadata.xml,其中 vserver.fqdn.com 是 NetScaler Gateway 虚拟服务器的完全限定域名 (FQDN)。您可以在绑定到虚拟服务器的服务器证书上找到 FQDN。
  • AD FS 配置文件。选择 AD FS 配置文件。
  • 证书。NetScaler Gateway 不支持加密。您无需选择证书。
  • 启用对 SAML 2.0 WebSSO 协议的支持。这将启用对 SAML 2.0 SSO 的支持。您提供 NetScaler Gateway 虚拟服务器 URL,例如 https:netScaler.virtualServerName.com/cgi/samlauth。
    此 URL 是 NetScaler Gateway 设备上的断言使用者服务 URL。这是一个常量参数,NetScaler Gateway 期望在此 URL 上收到 SAML 响应。
  • 依赖方信任标识符。输入名称 NetScaler Gateway。这是一个用于标识依赖方的 URL,例如 https://netscalerGateway.virtualServerName.com/adfs/services/trust。
  • 授权规则。您可以允许或拒绝用户访问依赖方。
  • 配置声明规则。您可以使用“颁发转换规则”配置 LDAP 属性的值,并使用模板“将 LDAP 属性作为声明发送”。然后配置 LDAP 设置,其中包括:
    • 电子邮件地址
    • sAMAccountName
    • 用户主体名称 (UPN)
    • MemberOf
  • 证书签名。您可以通过选择信赖方属性并添加证书来指定签名验证证书。
    如果签名证书小于 2048 位,将显示警告消息。您可以忽略该警告以继续。如果您正在配置测试部署,请在信赖方上禁用证书吊销列表 (CRL)。如果您不禁用此检查,AD FS 将尝试使用 CRL 来验证证书。
    您可以通过运行以下命令禁用 CRL:Set-ADFWRelayingPartyTrust - SigningCertficateRevocatonCheck None-TargetName NetScaler®
配置设置后,在完成信赖方信任向导之前验证信赖方数据。您可以使用端点 URL(例如 https://vserver.fqdn.com/cgi/samlauth)检查 NetScaler Gateway 虚拟服务器证书。
完成信赖方信任向导中的设置配置后,选择已配置的信任,然后编辑属性。执行以下操作:
  • 将安全哈希算法设置为 SHA-1。
    注意:NetScaler 仅支持 SHA-1。
  • 删除加密证书。不支持加密断言。
  • 编辑声明规则,包括以下内容:
    • 选择转换规则
    • 添加声明规则
    • 选择声明规则模板:将 LDAP 属性作为声明发送
    • 命名
    • 选择属性存储:Active Directory
    • 选择 LDAP 属性:\<Active Directory 参数\>
    • 选择传出声明规则为“名称 ID”
    注意:不支持属性名称 XML 标签。
  • 配置单点注销的注销 URL。声明规则为“发送注销 URL”。自定义规则必须如下:
    => issue(Type = "logoutURL", Value = "https://<adfs.fqdn.com>/adfs/ls/", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified");
配置 AD FS 设置后,下载 AD FS 签名证书,然后在 NetScaler Gateway 上创建证书密钥。然后,您可以使用该证书和密钥在 NetScaler Gateway 上配置 SAML 身份验证。

配置 SAML 双因素身份验证

您可以配置 SAML 双因素身份验证。将 SAML 身份验证与 LDAP 身份验证结合使用时,请遵循以下准则:
  • 如果 SAML 是主要身份验证类型,请在 LDAP 策略中禁用身份验证并配置组提取。然后,将 LDAP 策略绑定为辅助身份验证类型。
  • SAML 身份验证不使用密码,只使用用户名。此外,SAML 身份验证只在身份验证成功时通知用户。如果 SAML 身份验证失败,用户不会收到通知。由于不发送失败响应,SAML 必须是级联中的最后一个策略或唯一的策略。
  • 建议您配置实际用户名而不是不透明字符串。
  • SAML 不能绑定为辅助身份验证类型。