Gateway

配置 SAML 身份验证

安全断言标记语言 (SAML) 是一种基于 XML 的标准,用于在身份提供商 (IdP) 和服务提供商之间交换身份验证和授权。NetScaler Gateway 支持 SAML 身份验证。

配置 SAML 身份验证时,需要创建以下设置:

  • IdP 证书名称。这是与 IdP 上的私钥对应的公钥。
  • 重定向 URL。这是身份验证 IdP 的 URL。未经身份验证的用户将被重定向到此 URL。
  • 用户字段。如果 IdP 使用与主题标记的 NameIdentifier 标签不同的格式发送用户名,则可以使用此字段提取用户名。这是一个可选设置。
  • 签名证书名称。这是 NetScaler Gateway 服务器的私钥,用于对 IdP 的身份验证请求进行签名。如果未配置证书名称,则断言将以未签名方式发送,或者身份验证请求将被拒绝。
  • SAML 发行人名称。发送身份验证请求时使用此值。发行者字段中必须有一个唯一的名称来表示发送断言的权限。此字段为可选字段。
  • 默认身份验证组。这是身份验证服务器上用于对用户进行身份验证的组。
  • 两个因素。此设置启用或禁用双因素身份验证。
  • 拒绝无符号断言。如果启用,如果未配置签名证书名称,NetScaler Gateway 将拒绝用户身份验证。

NetScaler Gateway 支持 HTTP 后绑定。在此绑定中,发送方用 200 OK 回复用户,其中包含带有所需信息的表单自动发布。具体而言,默认表单必须包含两个名为 SAMLRequestSAMLResponse 的隐藏字段,具体取决于表单是请求还是响应。该表单还包括 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
    • User Principal Name (UPN)(用户主体名称(UPN))
    • MemberOf
  • 证书签名。您可以通过选择中继方的属性然后添加证书来指定签名验证证书。

    如果签名证书小于 2048 位,则会显示一条警告消息。您可以忽略警告以继续操作。如果要配置测试部署,请在中继方上禁用证书吊销列表 (CRL)。如果不禁用检查,AD FS 会尝试 CRL 验证证书。

    您可以通过运行以下命令来禁用 CRL:Set-ADFWRelayingPartyTrust - SigningCertficateRevocatonCheck None-TargetName NetScaler

配置设置后,请在完成中继方信任向导之前验证信赖方数据。您可以使用终端节点 URL 检查 NetScaler Gateway 虚拟服务器证书,例如 https://vserver.fqdn.com/cgi/samlauth

在中继方信任向导中完成配置设置后,选择已配置的信任,然后编辑属性。执行以下操作:

  • 将安全哈希算法设置为 SHA-1。

    注意:NetScaler 仅支持 SHA-1。

  • 删除加密证书。不支持加密断言。

  • 编辑索赔规则,包括以下内容:

    • 选择转换规则
    • 添加声明规则
    • 选择声明规则模板:将 LDAP 属性作为声明发送
    • 给个名字
    • 选择属性存储:Active Directory
    • 选择 LDAP 属性:<Active Directory parameters>
    • 选择外出索赔规则作为“名称 ID”

    注意:不支持属性名称 XML 标记。

  • 配置单点注销的注销 URL。声明规则是发送注销 URL。自定义规则必须是以下内容:

    pre codeblock => 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"); <!--NeedCopy-->

配置 AD FS 设置后,下载 AD FS 签名证书,然后在 NetScaler Gateway 上创建证书密钥。然后,您可以使用证书和密钥在 NetScaler Gateway 上配置 SAML 身份验证。

配置 SAML 双因素身份验证

您可以配置 SAML 双因素身份验证。使用 LDAP 身份验证配置 SAML 身份验证时,请遵循以下准则:

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