将 ADFS 配置为区身份验证的 SAML 提供商
本文介绍如何配置 Citrix Cloud 使用 SAML 登录 Citrix Workspace 或 Citrix Cloud 所需的信赖方信任。
完成本文中的步骤后,您可以在 ADFS 服务器和 Citrix Cloud 之间配置 SAML 连接,如 Connect SAML 作为 Citrix Cloud 中的身份提供商中所述。有关为 SAML 连接输入正确 ADFS 值的指导,请参阅本文中的 Citrix Cloud 中的 SAML 配置。
必备条件
本文中的说明假设您的环境中部署了 Citrix FAS 的 ADFS 服务器。 在会话启动期间,Citrix FAS 必须提供 VDA 的单点登录。
有关更多信息,请参阅以下文章:
- Citrix FAS 文档:
- Citrix Tech Zone:参考体系结构:联合身份验证服务
为 Citrix Cloud 配置信赖方信任
- 在 AD FS 管理控制台中,展开左侧窗格中的 AD FS 节点。
-
右键单击“信赖方信任”,然后选择“添加信赖方信任”。
将出现“添加信赖方信任”向导。
-
选择“声明感知”,然后选择“下一步”。
-
在联邦元数据地址中,输入
https://saml.cloud.com/saml/metadata.xml
。选择下一步。 -
对于显示名称,请输入
CitrixCloudProd
。选择下一步。 -
对于访问控制策略,选择“允许所有人”。选择下一步。
- 在“准备添加信任”屏幕上,选择“下一步”。
-
在“完成”屏幕上,选择“为此应用程序配置声明颁发策略”。选择下一步。
- 右键单击新创建的中继方信任,然后选择“编辑声明颁发策略”。
- 单击“添加规则”,然后选择“将 LDAP 属性作为声明发送”。选择下一步。
- 在声明规则名称中,输入
CitrixCloud
。 - 在属性存储中,选择 Active Directory。
-
在“将 LDAP 属性映射到传出声明类型”下,添加以下 LDAP 属性,如下所示:
LDAP 属性 发出的声明类型 用户主要名称 名称 ID 用户主要名称 cip_upn E-Mail-Addresses cip_email objectSID cip_sid objectGUID cip_oid Display-Name displayName Given-Name firstName 姓氏 lastName - 选择完成。
使用 PowerShell 修改 Citrix Cloud 信赖方信任
如果您已使用默认的“开箱即用”配置您的 ADFS 服务器,则可以通过本节中的步骤对其进行更新,使其符合 Citrix 推荐的配置。如果 nameidentifier
属性未包含在声明规则集中,或者不是声明规则集中的第一个 SAML 属性,则从 Citrix Cloud 或 Citrix Workspace 的 SAML 单一注销会失败,则需要执行此任务。
注意:
如果您使用本文中为 Citrix Cloud 配置信赖方信任中的步骤创建了声明规则集,则无需执行此任务。
要完成此任务,请使用 PowerShell 将现有规则集替换为新的声明规则集。ADFS 管理控制台不支持此类操作。
- 在 ADFS 服务器上,找到 PowerShell ISE。右键单击并选择“以管理员身份运行”。
-
将现有的 ADFS 声明规则备份到文本文件中:
Get-ADFSRelyingPartyTrust -name "CitrixCloudStaging" | Select-Object -ExpandProperty IssuanceTransformRules | Out-File "$env:USERPROFILE\desktop\claimrulesbackup.txt" <!--NeedCopy-->
- 下载 Citrix 提供的 claimrules.txt 文件,网址为 https://github.com/citrix/sample-scripts/tree/master/citrix-cloud。
- 将 claimrules.txt 文件复制到您的桌面。
-
使用 claimrules.txt 文件导入所需的声明规则:
Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" ` -MetadataUrl "https://saml.cloud.com/saml/metadata" ` -AutoUpdateEnabled $True ` -IssuanceTransformRulesFile "$env:USERPROFILE\desktop\claimrules.txt" ` -SignedSamlRequestsRequired $True ` -SamlResponseSignature "MessageAndAssertion" ` -Enabled $True <!--NeedCopy-->
使用 PowerShell 更新信赖方信任的 SAML 签名设置
默认情况下,ADFS 信赖方信任具有以下设置:
- EncryptClaims: True
- SignedSamlRequestsRequired: False
- SamlResponseSignature: AssertionOnly
为了提高安全性,Citrix 建议对单点登录 (SSO) 和单点注销都使用已签名的 SAML 请求。本节介绍如何使用 PowerShell 更新现有信赖方信任的签名设置,使其符合 Citrix 推荐的配置。
-
在 ADFS 服务器上获取当前 RelyingPartyTrust 配置。
Get-ADFSRelyingPartyTrust -TargetName "CitrixCloudProd" <!--NeedCopy-->
-
更新 CitrixCloudProd 信赖方信任设置。
Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" ` -SignedSamlRequestsRequired $True ` -SamlResponseSignature "MessageAndAssertion" <!--NeedCopy-->
-
联系 Citrix 支持部门,申请激活 Citrix Cloud 客户的 EnableSamlLogoutSigningAndPost 身份验证功能。这会导致 Citrix Cloud 在用户注销 Citrix Workspace 或 Citrix Cloud 时以已签名的 POST 请求而不是未签名的重定向请求发送 SAML 单点注销请求。如果 SAML 提供商要求单点注销的签名请求并拒绝未签名的重定向,则需要发送已签名的 POST 请求。
Citrix Cloud 中的 SAML 配置
在 Citrix Cloud 中配置 SAML 连接时(如将 SAML 提供商元数据添加到 Citrix Cloud 中所述),您需要按如下方式输入 ADFS 的值:
在 Citrix Cloud 的这个字段中 | 输入此值 |
---|---|
实体 ID |
https://adfs.YourDomain.com/adfs/services/trust ,其中 YourDomain.com 为您的 ADFS 服务器域。 |
签署身份验证请求 | 是 |
SSO 服务 URL |
https://adfs.YourDomain.com/adfs/ls ,其中 YourDomain.com 为您的 ADFS 服务器域。 |
绑定机制 | HTTP 发布 |
SAML 响应 | 在回应或断言上签名 |
身份验证上下文 | 未指定,精确 |
注销 URL |
https://adfs.YourDomain.com/adfs/ls ,其中 YourDomain.com 为您的 ADFS 服务器域。 |