配置 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 回复用户,其中包含带有所需信息的表单自动发布。具体而言,默认表单必须包含两个名为 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
- 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 不能绑定为辅助身份验证类型。