将本地 PingFederate 服务器配置为 Workspaces 和 Citrix Cloud 的 SAML 提供程序
本文由 Citrix 和 Ping 工程师协作撰写,并经双方审阅,以确保撰写时的技术准确性。有关如何预配、配置和许可本地 PingFederate 服务器以用作 SAML 提供程序的说明,请参阅 Ping 文档,因为这超出了本文的范围。
本文档是使用 PingFederate 11.3 和 12 版本编写的。
先决条件
本文专门介绍 SAML 配置,并确保满足以下条件。
- 您已在组织内部署了本地 PingFederate 服务器并获得了必要的许可证。有关详细信息,请参阅 PingFederate 安装。
- 您需要在 PingFederate 服务器上安装受支持的 Java 版本。有关受支持的 Java 版本,请参阅 Ping Identity 文档。有关详细信息,请参阅 Java PingFederate 要求。
- 您已配置所需的网络和防火墙规则,以允许 Citrix Cloud 和 Workspace 在 Workspace/Citrix Cloud 管理控制台 SAML 登录过程中重定向到本地 PingFederate 服务器。有关详细信息,请参阅 PingFederate 网络要求。
- 您已将公共签名的 x509 证书导入到 PingFederate 服务器上,该证书可用作 PingFederate 服务器的服务器证书。
- 您已将公共签名的 x509 证书导入到 PingFederate 服务器上,该证书可用作 IdP 的 SAML 签名证书。在 SAML 连接过程中,必须将此证书上传到 Citrix Cloud。
- 您已将本地 Active Directory 连接到 PingFederate。有关详细信息,请参阅 PingFederate LDAP 数据存储
注意:
在配置 PingFederate 以与 Citrix Cloud 和 Workspace 配合使用时,请参阅 PingFederate 文档以了解各个 SAML 设置的作用,并帮助补充此处提供的说明。
使用 PingFederate 中的数据存储配置到 AD 域的 Active Directory 连接
-
在数据存储中配置 Active Directory 连接。
-
将类型选择为 Directory (LDAP)。
-
配置域控制器以进行 LDAPS 连接,并在主机名字段中添加域控制器 FQDN 列表。然后单击 Test Connection。
-
配置完成后,Active Directory 连接应类似于以下示例:
上传 Citrix Cloud SAML 签名证书
- 单击 Security 选项卡
-
在 Signing & Decryption Keys and Certificates 中上传您希望 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 用户名和密码。
-
配置 Instance Configuration。选择您之前配置的 AD 域连接和数据存储 使用 PingFederate 中的数据存储配置到 AD 域的 Active Directory 连接。输入示例中所示的合适 LDAP 筛选器。
`(((sAMAccountName=${username})(userPrincipalName=${username}))`
注意:
示例筛选器同时支持 sAMAccountName 和 userPrincipalName AD 用户名格式,使用户能够使用这两种格式中的任何一种登录 Workspace 或 Citrix Cloud。
-
配置 Extended Contract。
-
Password Credential Validator 摘要应类似于此示例。
在 PingFederate 中配置 IDP 适配器
有关详细信息,请参阅 PingFederate HTML 表单适配器
-
创建一个类型为 HTML Form IdP Adapter 的新 IDP 适配器。
-
选择您之前配置的现有 Password Credential Validator 并配置 IDP 适配器。有关详细信息,请参阅 在 PingFederate 中配置密码凭据验证程序。
-
使用在 SAML 登录期间传递到 Citrix Cloud 或 Workspaces 的 SAML 属性配置 Extended Contract。
-
配置 Adapter Attributes。
- 配置 Adapter Contract Mapping,其中 SAML 属性映射到 AD 身份的 LDAP 用户属性。单击 Configure the adapter contract。
-
配置 Attribute Sources & User Lookup。
-
配置 Adapter Contract Fulfilment。选择 LDAP 和您的 Active Directory 数据存储的名称作为用户属性数据的来源。值是用户的 Active Directory 属性,例如
objectGUID
或objectSid
。
配置 Citrix Cloud 或 Workspaces 的服务提供程序连接 (SAML 应用程序)
下面提供的 PingFederate 示例配置假定您的组织中存在以下 SAML 身份验证要求。
- 从 Workspace/Citrix Cloud 管理控制台发送的 SAML 身份验证请求必须签名。
- SAML HTTP POST 绑定将用于 SSO 和 SLO 请求。
- 单一注销 (SLO) 是您组织中的一项要求。当最终用户从 Workspace 或 Citrix Cloud 管理控制台注销时,Citrix Cloud 会向 SAML 提供程序 (IdP) 发送 SAML SLO 请求以注销用户。
-
PingFederate 需要签名的 HTTP POST 请求才能启动注销。SAML 提供程序需要签名的 SLO 请求。
有关详细信息,请参阅 PingFederate SP 管理
步骤
-
配置 Connection Template。
-
配置 Connection Type 并选择 Browser SSO profiles and SAML 2.0。
-
配置 Connection Options。
-
导入 Citrix Cloud 元数据。选择 URL 和您之前创建的
CitrixCloudProdMetadata
URL,然后单击 Load Metadata。 -
配置 General Info。将服务提供程序连接实体 ID、基本 URL 和连接名称设置为您的 Citrix Cloud 客户区域的 Citrix Cloud SAML 端点。
- https://saml.cloud.com - 商业版(欧盟、美国和亚太地区)
- https://saml.citrixcloud.jp - 日本
- https://saml.cloud.us - 政府版
-
配置 Protocol Settings。
-
使用默认的 Assertion Lifetime 设置。
- 配置 SAML 断言创建。
-
单击 Configure Assertion Creation
-
选择 Standard。
-
-
配置 Attribute Contract。
-
配置 Adapter Instance。
-
配置 Mapping Method。
-
配置 Attribute Contract Fulfilment。
-
将 Issuance Criteria 配置为默认值,不带任何条件。
-
完成的 IDP Adapter Mapping 如下所示:
- 配置 Protocol Settings。Citrix Cloud 所需的 SAML 路径将附加到您的 PingFederate 服务器基本 URL。可以通过在端点 URL 字段中输入完整路径来覆盖基本 URL,但这通常是不必要且不希望的。
基本 URL - https://youpingfederateserver.domain.com
-
配置断言消费者服务 URL,该 URL 将 SAML 路径附加到 PingFederate 服务器基本 URL。端点 URL -
/saml/acs
-
配置 SLO Service URL。端点 URL -
/saml/logout/callback
重要提示:
如果您希望在从 Workspace 或 Citrix Cloud 注销时执行 SLO,则 Citrix Cloud SAML 连接需要配置 PingFederate 注销 URL 以匹配此项。未能在 SAML 连接中配置注销 URL 将导致最终用户仅从 Workspace 注销,而不会从 PingFederate 注销。
-
配置 Allowable SAML Bindings。
-
配置 Signature Policy。
重要提示:
SAML 签名设置必须在 SAML 连接的两端保持一致配置。Workspace 或 Citrix Cloud (SP) 必须配置为发送签名的 SSO 和 SLO 请求。
-
必须配置 PingFederate (IDP) 以使用 Citrix Cloud SAML 签名验证证书执行签名请求的强制执行。
-
配置 Encryption Policy。
注意:
建议在初始设置和测试期间将加密设置为 NONE,以便您可以调试断言中缺少或不正确的 SAML 属性的任何问题。如果您需要加密断言,建议在证明登录 Workspace 或 Citrix Cloud 成功且所有资源已成功枚举并可以启动后启用加密。如果您无法查看 SAML 断言的纯文本内容,则在启用加密时调试 SAML 问题将是不可能的。
-
查看 Summary 选项卡。
-
查看 Citrix Cloud Service Provider (SP) Connection。配置完成后,Citrix Cloud SP connection 应类似于此示例:
有用提示:
使用 SP 连接激活和摘要页面来查看您的 SAML 应用程序并进行调试,因为它允许快速轻松地进行配置更改。SP 连接激活和摘要页面允许您通过单击该部分的标题导航到任何 SAML 配置子部分。单击任何以红色突出显示的标题以更新这些设置。
-
-
完成的 Citrix Cloud SP connection 应在列表中显示如下。
-
可以将 SP 连接导出为 XML 文件。Citrix 建议在您使用 Citrix Cloud 和 Workspace 测试 SP 连接后,对其进行备份。
配置 Citrix Cloud SAML 连接
所有 Citrix 登录流程都需要使用 Workspace URL 或 Citrix Cloud GO URL 由服务提供程序启动。
在 Identity and Access Management → Authentication →Add an identity provider → 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 Post |
SAML 响应 | 签名响应或断言 |
身份验证上下文 | 未指定,精确 |
注销 URL |
https://yourpingfedbaseurl.domain.com/idp/SLO.saml2 ,其中 yourpingfedbaseurl.domain.com 是您的 PingFederate 服务器域。 |
签名注销请求 | 是 |
SLO 绑定机制 | HTTP Post |
重要提示:
- 不支持使用不正确的 PingFederate IDP 启动的 SSO 端点
https://yourpingfederateserver.domain.com/idp/startSSO.ping?PartnerSpId=https://saml.cloud.com
。Citrix Cloud 和 Workspace 不支持 IDP 启动的 SSO。- 以下摘录自 PingFederate 文档: 这是用于启动未经请求的 IdP 启动的单一登录 (SSO) 事务的路径,在此事务期间,包含断言的 SAML 响应将发送到服务提供程序 (SP)。
- 已知使用不正确的 SAML 端点会导致 SAML 登录失败,并在 Citrix Cloud 的身份验证平台中出现以下错误。
ExceptionMessage=An IdP-initiated SAML response from YourSAMLApp was received unexpectedly.