将 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 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 服务器域。 |
从 MMC ADFS 管理控制台中导出 ADFS 签名证书。 请参阅下面的屏幕截图,了解 3 个证书中的哪一个是在 SAML 连接中上传到 Citrix Cloud 的正确证书。