将本地 PingFederate 服务器配置为商店和 Citrix Cloud™ 的 SAML 提供程序
本文由 Citrix® 和 Ping 工程师合作撰写,并经双方审阅,以确保撰写时的技术准确性。有关如何预配、配置和许可本地 PingFederate 服务器以用作 SAML 提供程序的说明,请参阅 Ping 文档,因为这超出了本文的范围。
本文档使用 PingFederate 11.3 和 12 版本编写。
先决条件
本文专门讨论 SAML 配置,并确保满足以下条件。
- 您已在组织内预配了本地 PingFederate 服务器并获得了必要的许可证。有关详细信息,请参阅 PingFederate 安装。
- 您需要在 PingFederate 服务器上安装受支持的 Java 版本。有关受支持的 Java 版本,请参阅 Ping Identity 文档。有关详细信息,请参阅 Java PingFederate 要求。
- 您已配置所需的网络和防火墙规则,以允许 Citrix Cloud 在商店/Citrix Cloud 管理控制台 SAML 登录过程中重定向到本地 PingFederate 服务器。有关详细信息,请参阅 PingFederate 网络要求。
- 您已将公共签名的 x509 证书导入到 PingFederate 服务器,该证书可用作 PingFederate 服务器的服务器证书。
- 您已将公共签名的 x509 证书导入到 PingFederate 服务器,该证书可用作 IdP 的 SAML 签名证书。此证书必须在 SAML 连接过程中上传到 Citrix Cloud。
- 您已将本地 Active Directory 连接到 PingFederate。有关详细信息,请参阅 PingFederate LDAP 数据存储
注意:
在配置 PingFederate 以与 Citrix Cloud 和商店配合使用时,请参阅 PingFederate 文档以了解各个 SAML 设置的作用,并帮助补充此处提供的说明。
使用 PingFederate 中的数据存储配置到 AD 域的 Active Directory 连接
-
在数据存储中配置 Active Directory 连接。

-
选择类型为 目录 (LDAP)。

-
为 LDAPS 连接配置域控制器,并在主机名字段中添加域控制器 FQDN 列表。然后单击 测试连接。

-
配置完成后,Active Directory 连接应类似于以下示例:

上传 Citrix Cloud SAML 签名证书
- 单击 安全 选项卡
-
在 签名和解密密钥和证书 中上传您希望 PingFederate 使用的 SAML 签名证书。

注意:
本示例中使用的证书是公开签名的 Digicert
pingfederateserver.domain.com证书。 -
上传用于签署您的 PingFederate 服务器 SAML 签名证书的任何 CA 证书。

注意:
PingFederate 服务器证书和 SAML 签名证书可以是相同的 SSL 证书,也可以使用不同的 SSL 证书。配置 SAML 连接时,您需要向 Citrix Cloud 提供 SAML 签名证书的副本。

上传 Citrix Cloud 元数据
-
为 Citrix Cloud 元数据提供一个名称,并输入与您的 Citrix Cloud 租户所在的 Citrix Cloud 区域对应的元数据 URL。
- https://saml.cloud.com/saml/metadata - 商业版(欧盟、美国和亚太地区)
- https://saml.citrixcloud.jp/saml/metadata - 日本
- https://saml.cloud.us/saml/metadata - 政府版

-
配置完成后,Citrix Cloud 元数据配置应类似于以下示例。

在 PingFederate 中配置密码凭据验证器
有关详细信息,请参阅 PingFederate 密码凭据验证器
-
将密码凭据验证器类型配置为 LDAP 用户名和密码。

-
配置实例配置。选择您之前配置的 AD 域连接和数据存储 使用 PingFederate 中的数据存储配置到 AD 域的 Active Directory 连接。输入示例中所示的合适 LDAP 过滤器。
(((sAMAccountName=${username})(userPrincipalName=${username}))
注意:
示例过滤器同时支持 sAMAccountName 和 userPrincipalName AD 用户名格式,使最终用户能够使用其中任一格式登录到商店或 Citrix Cloud。
-
配置扩展协定。

-
密码凭据验证器摘要应与此示例类似。

在 PingFederate 中配置 IDP 适配器
有关详细信息,请参阅 PingFederate HTML 表单适配器
-
创建一个类型为 HTML 表单 IdP 适配器的新 IDP 适配器。

-
选择您之前配置的现有密码凭据验证器并配置 IDP 适配器。有关详细信息,请参阅 在 PingFederate 中配置密码凭据验证器。

-
配置扩展协定,其中包含在 SAML 登录期间传递给 Citrix Cloud 或商店的 SAML 属性。
配置扩展协定(/en-us/citrix-cloud/media/authentication-extended-contract.png)
-
配置适配器属性。
配置适配器属性(/en-us/citrix-cloud/media/authentication-configure-adapter-attributes.png)
-
配置适配器协定映射,其中 SAML 属性映射到 AD 身份的 LDAP 用户属性。单击配置适配器协定。
设置 2 个二进制属性的编码。
- objectGUID = base64(已编码)
- objectSid = SID(未编码)
配置适配器属性编码(/en-us/citrix-cloud/media/authentication-configure-adapter-attributes-encoding.png)
-
配置属性源和用户查找。
属性源和用户查找(/en-us/citrix-cloud/media/attribute-sources.png)
-
配置适配器协定履行。选择 LDAP 和您的活动目录数据存储名称作为用户属性数据的来源。值是用户的活动目录属性,例如
objectGUID或objectSid。配置适配器协定履行(/en-us/citrix-cloud/media/adapter-contract-fulfillment.png)
-
二进制属性编码应在HTML 表单适配器摘要中显示,如下面的屏幕截图所示。
配置适配器摘要1(/en-us/citrix-cloud/media/configure-adapter-summary1.png)
配置适配器摘要2(/en-us/citrix-cloud/media/configure-adapter-summary2.png)
配置 Citrix Cloud 或 Workspaces 的服务提供商连接(SAML 应用程序)
下面提供的 PingFederate 示例配置假定您的组织具有以下 SAML 身份验证要求。
- 从商店/Citrix Cloud 管理控制台发送的 SAML 身份验证请求必须签名。
- SAML HTTP POST 绑定将用于 SSO 和 SLO 请求。
- 单点注销 (SLO) 是您组织的一项要求。当最终用户从商店或 Citrix Cloud 管理控制台注销时,Citrix Cloud 会向 SAML 提供商 (IdP) 发送 SAML SLO 请求以注销用户。
-
PingFederate 需要签名的 HTTP POST 请求才能启动注销。SAML 提供商需要签名的 SLO 请求。

有关详细信息,请参阅 PingFederate SP 管理
步骤
-
配置 连接模板。

-
配置 连接类型 并选择 浏览器 SSO 配置文件和 SAML 2.0。

-
配置 连接选项。

-
导入 Citrix Cloud 元数据。选择 URL 和您之前创建的
CitrixCloudProdMetadataURL,然后单击“加载元数据”
-
配置“常规信息”。将服务提供商连接实体 ID、基本 URL 和连接名称设置为您的 Citrix Cloud 客户区域的 Citrix Cloud SAML 端点。
- https://saml.cloud.com - 商业版(欧盟、美国和亚太南部)
- https://saml.citrixcloud.jp - 日本
- https://saml.cloud.us - 政府版

-
配置“协议设置”。

-
使用默认的“断言生命周期”设置。

- 配置 SAML 断言创建。
-
单击“配置断言创建”

-
选择“标准”。

-
-
配置 属性协定。

-
配置 适配器实例。

-
配置 映射方法。

-
配置 属性协定履行。

-
将 颁发条件 配置为默认值,不带任何条件。

-
已完成的 IDP 适配器映射 显示如下:

- 配置 协议设置。Citrix Cloud 所需的 SAML 路径将附加到您的 PingFederate 服务器基本 URL。可以通过在端点 URL 字段中输入完整路径来覆盖基本 URL,但这通常是不必要且不理想的。
基本 URL - https://youpingfederateserver.domain.com
-
配置断言消费者服务 URL,它将 SAML 路径附加到 PingFederate 服务器基本 URL。端点 URL -
/saml/acs
-
配置 SLO 服务 URL。端点 URL -
/saml/logout/callback
重要提示:
如果您希望在从商店或 Citrix Cloud 注销时执行 SLO,则 Citrix Cloud SAML 连接需要配置 PingFederate 注销 URL 以匹配此项。如果未在 SAML 连接中配置注销 URL,则最终用户将仅从商店注销,而不会从 PingFederate 注销。
-
配置 允许的 SAML 绑定。

-
配置 签名策略。

重要提示:
SAML 签名设置必须在 SAML 连接的两端保持一致配置。商店或 Citrix Cloud (SP) 必须配置为发送已签名的 SSO 和 SLO 请求。
-
必须配置 PingFederate (IDP) 以使用 Citrix Cloud SAML 签名验证证书来强制执行已签名的请求。

-
配置 加密策略。

注意:
建议在初始设置和测试期间将加密设置为 NONE,以便您可以调试断言中缺少或不正确的 SAML 属性的任何问题。如果您需要加密断言,建议您在证明登录到商店或 Citrix Cloud 成功并且所有资源都已成功枚举并可以启动后启用加密。如果无法查看 SAML 断言的纯文本内容,则在启用加密的情况下调试 SAML 问题将是不可能的。
-
查看摘要选项卡。

-
查看Citrix Cloud 服务提供商 (SP) 连接。配置Citrix Cloud SP 连接后,它应如下例所示:

有用提示:
使用 SP 连接激活和摘要页面来查看您的 SAML 应用程序并用于调试目的,因为它允许快速轻松地进行配置更改。SP 连接激活和摘要页面允许您通过单击任何部分的标题来导航到 SAML 配置的任何子部分。单击任何以红色突出显示的标题以更新这些设置。

-
-
已完成的Citrix Cloud SP 连接应在列表中显示如下。

-
可以将 SP 连接导出为 XML 文件。Citrix 建议在您使用 Citrix Cloud 和商店测试 SP 连接后,对其进行备份。

配置 Citrix Cloud SAML 连接
所有 Citrix 登录流程都需要使用商店 URL 或 Citrix Cloud GO URL 进行服务提供商发起。
使用 身份和访问管理 → 身份验证 → 添加身份提供程序 → SAML 中 SAML 连接的默认推荐值。
| 在 Citrix Cloud 中的此字段 | 输入此值 |
|---|---|
| 实体 ID |
https://yourpingfedbaseurl.domain.com,其中 yourpingfedbaseurl.domain.com 是您的 PingFederate 服务器域。 |
| 签署身份验证请求 | 是 |
| SSO 服务 URL |
https://yourpingfedbaseurl.domain.com/idp/SSO.saml2,其中 yourpingfedbaseurl.domain.com 是您的 PingFederate 服务器域。 |
| SSO 绑定机制 | HTTP 提交 |
| SAML 响应 | 签署响应或断言 |
| 身份验证上下文 | 未指定,精确 |
| 注销 URL |
https://yourpingfedbaseurl.domain.com/idp/SLO.saml2 其中 yourpingfedbaseurl.domain.com 是您的 PingFederate 服务器域。 |
| 签署注销请求 | 是 |
| SLO 绑定机制 | HTTP 提交 |
重要提示:
- 不支持使用不正确的 PingFederate IDP 发起的 SSO 端点
https://yourpingfederateserver.domain.com/idp/startSSO.ping?PartnerSpId=https://saml.cloud.com。Citrix Cloud 和 Store 不支持 IDP 发起的 SSO。- 以下摘录自 PingFederate 文档: 这是用于启动非请求的 IdP 发起的单点登录 (SSO) 事务的路径,在此事务期间,包含断言的 SAML 响应将发送到服务提供商 (SP)。
- 已知使用不正确的 SAML 端点会导致 SAML 登录失败以及 Citrix Cloud 身份验证平台中出现以下错误。
ExceptionMessage=An IdP-initiated SAML response from YourSAMLApp was received unexpectedly.