PingFederate 作为中央身份验证服务器 > SSO 配置示例 > 示例:实施 SSO,其中 PingFederate 作为中央身份验证服务器,AD FS 作为标识提供者,SCIM 作为用户设置方法,Windchill 作为资源服务器
示例:实施 SSO,其中 PingFederate 作为中央身份验证服务器,AD FS 作为标识提供者,SCIM 作为用户设置方法,Windchill 作为资源服务器
本示例提供了如何配置以下环境的详细步骤:该环境将 ThingWorx 配置为单一登录,其中 PingFederate 作为中央身份验证服务器 (CAS),Active Directory 联合身份验证服务 (AD FS) 作为标识提供者 (IdP),Windchill 作为资源服务器。
下表显示了该示例中配置的应用程序及其角色:
角色
应用程序
服务提供者
ThingWorx
中央身份验证服务器
PingFederate
标识提供者
AD FS
资源服务器
Windchill
下图显示了本示例中所讨论的配置。
有关使用此体系结构的 SSO 实施概述,请参阅文章 CS271789 中提供的视频。
在开始 SSO 实施前,请查看以下决策树,其中突出显示了带有 PingFederate 的 ThingWorx Navigate 和 Windchill 部署过程中的关键决策点。此图表显示了基于最佳做法、可用性和典型使用案例的推荐路径。
* 
此外,IdP 和 LDAP 还有其他一些组合形式,此图表中并未涉及。例如,可将 Windows 主机上的 Microsoft Active Directory 与 Linux 主机上的 ThingWorx 和 Windchill 搭配使用,但该搭配既非典型搭配,也非首选搭配。
如果要使用 Shibboleth SP 来简化 Windchill 的 SSO,则需要 11.0 M020 或更高版本。
SSO 决策树
第 1 部分:先决条件 
1. 通过以下方法更新环境中所用计算机的 hosts 文件:
PingFederate 计算机 - 添加 AD FS、ThingWorxPingFederate 计算机。
ThingWorx 计算机 - 添加 AD FS、ThingWorxPingFederate 计算机。
Windchill 计算机 - 添加 ThingWorxPingFederate 计算机。
2. 安装 ThingWorx。有关详细信息,请参阅相应的 ThingWorx 帮助中心
停止 ThingWorx 服务器。
* 
请确保更新并配置 Tomcat,以允许 ThingWorx 在跨域环境中运行。有关详细信息,请参阅此文章
3. 安装或将 PingFederate 升级ThingWorx 所支持的最新修补程序。
4. 请确保已设置 Windchill。有关详细信息,请参阅相应的 Windchill 帮助中心
5. 设置和配置 AD FS,并确保具有如下属性值和文件:
uid
email
group
元数据文件
签名许可证
第 2 部分:手动配置 AD FS 的身份验证 
步骤 1:创建 PingFederate 全局 SSL 证书
1. 以管理员身份登录 PingFederate。搜索 SSL Server Certificates 并打开搜索结果。
2. 单击 Create New 以创建全局 SSL 证书,然后执行以下操作:
a. Common Name 字段中,提供 PingFederate 计算机的 FQDN。
b. 在该页面上提供其他详细信息,然后单击 Next
c. 确保选中以下复选框,然后单击 Save
d. 单击 SSL Server Certificates
e. 对于所创建的 SSL 证书,请在 Select Action 列表中选择 Activate Default for Runtime Server,然后选择 Activate Default for Admin Console。单击 Save
此 SSL 证书将被标记为管理控制台和运行时服务器的 default
3. 对于 localhost 证书,请执行以下操作:
a. Select Action 列表中,相继选择 Deactivate for Runtime ServerDeactivate for Admin Console
b. 删除 localhost 证书,然后单击 Save
步骤 2:创建服务提供者合同
1. PingFederate 中,搜索 Policy Contract 并打开搜索结果。
2. 单击 Create New Contracts,然后执行以下操作:
a. Contract Info 字段中,输入合同名称,例如 SPContract,然后单击 Next
b. Contract Attributes 下,若要延长以下属性的合同期限,请针对每个属性单击 Add
uid
email
group
默认情况下会提供 subject 属性。
c. 单击 Next,然后在 Summary 页面上,单击 Save
d. Authentication Policy Contracts 页面上,单击 Save
步骤 3:下载 AD FS FederationMetadata.xml 文件
1. 在 AD FS 计算机的浏览器中,输入以下 URL 以下载联合元数据文件:
https://ADSF_Host.ADFS_Domain/FederationMetadata/2007-06/FederationMetadata.xml
2. 将所下载文件复制到 PingFederate 计算机。
步骤 4:创建 PingFederate IdP 连接
A) 指定用于创建 IdP 连接的常规信息
1. PingFederate 中,搜索 IdP Connections 并打开搜索结果。单击 Create Connection
2. Connection Type 选项卡上,选中 BROWSER SSO Profiles 复选框,然后单击 Next
3. Connection Options 选项卡上,选中 BROWSER SSOOAUTH ATTRIBUTE MAPPING 复选框,然后单击 Next
4. Import Metadata 选项卡上,选择 File,然后单击 Choose File 并浏览至 FederationMetadata.xml 文件,然后单击 Next
5. Metadata Summary 选项卡上,单击 Next
6. General Info 选项卡预填充有数据。您可根据需要更改 CONNECTION NAME。验证其余信息,然后单击 Next
7. Browser SSO 选项卡上,单击 Configure Browser SSOBrowser SSO 页面随即打开,在此页面中您需要为您的浏览器指定单一登录设置。
B) 配置浏览器 SSO 设置
1. Browser SSO 页面的 SAML Profiles 选项卡上,选择以下选项,然后单击 Next
IDP-INITIATED SSO
SP-INITIATED SSO
2. User-Session Creation 选项卡上,单击 Configure User-Session CreationUser-Session Creation 页面随即打开,在此页面中您需要指定设置以配置用户创建。
C) 配置用户会话创建设置
1. Identity Mapping 选项卡上,接受默认设置,然后单击 Next
2. Attribute Contract 选项卡上,验证自动填充的属性,然后单击 Next
3. Target Session Mapping 选项卡上,单击 Map New Authentication PolicyAuthentication Policy Mapping 页面随即打开,在此页面中您需要为身份验证策略映射指定设置。
D) 配置身份验证策略映射设置
1. Authentication Policy Contract 列表中,选择您在第 2 部分 - 步骤 2 中创建的合同,即 SPContract。验证是否显示了所有属性,然后单击 Next
2. Attribute Retrieval 选项卡上,接受默认设置,然后单击 Next
3. Contract Fulfillment 选项卡上,为 emailgroupsubjectuid 身份验证策略合同选择以下值:
Source 列表中,选择 Assertion
Value 列表中,从列表内选择相应条目。
单击 Next
4. Issuance Criteria 选项卡上,单击 Next
5. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneUser-Session Creation 页面随即打开,在此页面中您需要查看用户会话创建的配置设置。
E) 查看用户会话创建配置设置
1. User-Session Creation 页面上的 Target Session Mapping 选项卡显示了映射新身份验证策略期间所选择的信息。单击 Next
2. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneBrowser SSO 页面随即打开。
3. Browser SSO 页面上的 User-Session Creation 选项卡显示了配置用户会话创建期间所输入的信息。单击 Next
4. OAuth Attribute Mapping 选项卡上,相继选择 Map Directly Into Persistent GrantConfigure OAuth Attribute Mapping,然后执行以下操作:
a. Data Store 选项卡上,单击 Next
b. Contract Fulfilment 选项卡中,将 USER_KEYUSER_NAMESource 选为 AssertionValue 选为 name attribute from ADFS,然后单击 Next
c. Issuance Criteria 选项卡上,单击 Next
5. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 Done。在 OAuth Attribute Mapping Configuration 页面上,单击 Next
6. Protocol Settings 选项卡上,单击 Configure Protocol SettingsProtocol Settings 页面随即打开,在此页面中您需要指定协议设置。
F) 配置和查看协议设置
1. SSO Service URLs 选项卡上,单击 Next
2. Allowable SAML Bindings 选项卡上,执行以下操作,然后单击 Next
a. 选中以下复选框:
POST
REDIRECT
b. 清除以下复选框:
ARTIFACT
POST
3. 跳过 Overrides 选项卡上的设置,然后单击 Next
4. Signature Policy 选项卡上,单击 SPECIFY ADDITIONAL SIGNATURE REQUIREMENTS 并选中其下的两个复选框,然后单击 Next
5. Encryption Policy 选项卡上,单击 ALLOW ENCRYPTED SAML ASSERTIONS AND SLO MESSAGES 并选中 THE ENTIRE ASSERTION 复选框,然后单击 Next
6. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneBrowser SSO 页面随即打开。
7. Browser SSO 页面上的 Protocol Settings 选项卡显示了配置协议设置时所选择的信息。单击 Next
8. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneIdP Connection 页面随即打开。
9. IdP Connection 页面的 Browser SSO 选项卡上,单击 Next
10. Credentials 选项卡上,单击 Configure CredentialsCredentials 页面随即打开,在此页面中您需要指定设置以配置凭据。
G) 配置凭据
1. Digital Signature Settings 选项卡上,单击 Manage Certificates
2. 要创建签名证书,请单击 Create New 并提供以下值,然后单击 Next
COMMON NAME
ORGANIZATION
COUNTRY
VALIDITY (DAYS)365
KEY ALGORITHMRSA
KEY SIZE (BITS)2048
SIGNATURE ALGORITHMRSA SHA256
3. 查看 Summary 选项卡中的信息。如果信息正确无误,请相继单击 SaveDone
4. Digital Signature Settings 选项卡上,针对所创建的 SIGNING CERTIFICATE,选中 INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 复选框,然后单击 Next
此应用程序层证书可用于以数字方式签署从 PingFederate 到 IdP 的请求。
5. Signature Verification Settings 选项卡上,单击 Manage Signature Verification Settings
a. Trust Model 选项卡上,选择 UNANCHORED,然后单击 Next
b. Signature Verification Certificate 上,验证 IdP 签名证书是否已显示,然后单击 Next
此应用程序层证书可用于从 IdP 到 PingFederate 请求的签名验证。当从 IdP 导入 metadata.xml 文件时,此证书会被自动导入 PingFederate
c. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 Done
d. Signature Verification Settings 选项卡上,单击 Next
e. Select Decryption Keys 中,选择 PingFederate 证书,然后单击 Next
f. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 Done
g. Credentials 页面上,单击 Next
H) 激活 IdP 连接
Activation & Summary 页面上,确保 SSO Application Endpoint 已激活,然后单击 Save
IdP 连接现已创建并激活。
I) 验证 IdP 连接
单击所创建的 IdP 连接、复制 SSO Application Endpoint URL、将其粘贴到浏览器中,然后验证其是否重定向至 IdP。这样一来,PingFederate 中的这一 URL 必将重定向至 AD FS。您将看到类似于下图的页面,其中包含了一条错误消息。
第 3 部分:配置 AD FS 信赖方 
步骤 1:从 PingFederate 导出元数据 XML 文件
1. PingFederate 中,转至 Service Provider,然后在 IDP Connections 下单击 Manage All
2. 对于 IdP 连接,请在 Select Action 列表中单击 Export Metadata
3. Metadata Signing 页面上,单击 Next
4. Export & Summary 页面上,单击 Export 以将元数据文件下载至计算机上的 Downloads 文件夹,然后单击 Done
5. 将元数据 XML 文件复制到 AD FS 计算机。
步骤 2:在 AD FS 中添加信赖方
1. 登录到 AD FS 服务器,然后打开 Server Manager
2. 转至 Tools > AD FS Management
3. AD FS 下,右键单击 Relying Party Trusts,然后选择 Add Relying Party Trust。这可确保 AD FS 信任相关连接来自于 PingFederate
4. Add Relying Party Trust Wizard 窗口中,执行以下操作:
a. 单击 Start
b. 在下一个屏幕上,单击 Import data about the relying party from a file
c. 单击 Browse,导航至从 PingFederate 复制的 Metadata.xml 文件所在位置,以在 AD FS 中创建信赖方,然后单击 Next
d. 提供一个 Display name,然后单击 Next
请记下此名称以便后续使用。
e. 在以下窗口中单击 Next,直至到达 Finish 屏幕。然后,单击 Close
当前条目随即将被添加至 Relying Part Trusts 列表。
您还应看到以下窗口 (它可能隐藏在当前窗口后面):
5. 要将 AD FS 属性映射至 Active Directory,请执行以下操作:
a. Edit Claim Issuance Policy for <Relying Part Trust Name> 窗口中,单击 Add Rule,然后单击 Next
b. 提供 Claim rule name,并将 Attribute store 设置为 Active Directory
c. Mapping of LDAP attributes to outgoing claim types 表中,从列表内选择值以将 AD FS 属性映射至 Active Directory 属性:
* 
如果未正确映射上述属性,则单一登录将无法使用。
显示-名称
名称
SAM-帐户-名称
名称 ID
电子邮件地址
电子邮件地址
为 DL 成员
d. 单击 Finish,然后单击 OK
步骤 3:设置 AD FS 以加密完整消息和断言
1. 在 AD FS 计算机上,以管理员身份打开 Windows PowerShell
2. 在 AD FS 计算机上运行以下命令以使通信正常工作:
Set-ADFSRelyingPartyTrust -TargetName <Relying Party Trust Name> -SamlResponseSignature "MessageAndAssertion"
其中,<Relying Party Trust Name> 为上述步骤 2 中创建并记下的信赖方信任名称。
此命令通过 Windows PowerShell 配置 SAML 响应签名。
第 4 部分:验证 IdP 连接终结点 URL 
1. PingFederate 中,复制 SSO Application Endpoint URL,然后将其粘贴到匿名窗口中。
2. 使用为 AD FS 创建的域名和管理员用户登录。
随即应收到以下消息:
第 5 部分:为 ThingWorx 创建 PingFederate 服务提供者连接 
步骤 1:创建 ThingWorx 签名证书
1. <ThingWorx Installation Folder>/ThingworxPlatform 文件夹中,创建 ssoSecurityConfig 文件夹。
2. 如下所示,创建 JKS 类型的 KeyStore,并将其命名为 sso-keystore JKS
生成密钥对。
将证书的公共名称 (CN) 指定为 ThingWorx
3. thingworx.cersso-keystore.jks 导出到 ssoSecurityConfig 文件夹。
步骤 2:为 ThingWorx 配置服务提供者连接
A) 指定用于创建服务提供者连接的常规信息
1. PingFederate 主页上搜索 SP Connections 组,然后单击 Create ConnectionSP Connection 页面随即打开。
2. Connection Template 选项卡上,选择 DO NOT USE A TEMPLATE FOR THIS CONNECTION,然后单击 Next
3. Connection Type 选项卡上,选中 Browser SSO ProfilesSAML 2.0 Protocol 复选框,然后单击 Next
4. Connection Options 选项卡上,选中 BROWSER SSO 复选框,然后单击 Next
5. Import Metadata 选项卡上,选择 None,然后单击 Next
6. General Info 选项卡上,执行以下任务:
a. Partner’s Entity ID (Connection ID) 字段中,提供一个唯一值,例如 TWX_SP
请记下该值以便在配置 ThingWorx sso-settings.json 文件时使用。
b. Connection Name 字段中,提供一个描述性名称,例如 TWX_SP
该名称将显示在 PingFederate SP 连接列表中。
c. Base URL 字段中,键入部署了 ThingWorx 的服务器 URL,然后单击 Next。例如:https://{ThingWorxHost_FQDN}:8443
7. Browser SSO 选项卡上,单击 Configure Browser SSOBrowser SSO 页面随即打开,在此页面中您需要为您的浏览器指定单一登录设置。
B) 配置浏览器 SSO 设置
1. Browser SSO 页面的 SAML Profiles 选项卡上,于 Single Sign-On (SSO) Profiles 部分下,选择下列选项,然后单击 Next
IDP-INITIATED SSO
SP-INITIATED SSO
切勿在 Single Logout (SLO) Profiles 列中选择任何选项。
2. Assertion Lifetime 选项卡上,将 Minutes Before 设置为 60,将 Minutes After 设置为 480。单击 Next
3. Assertion Creation 选项卡上,单击 Configure Assertion CreationAssertion Creation 页面随即打开,在此页面中您需要为断言创建指定设置。
C) 配置断言创建设置
1. Assertion Creation 页面的 Identity Mapping 选项卡上,单击 Standard,然后单击 Next
2. Attribute Contract 选项卡的 Attribute Contract 下,键入 SAML_Subject,然后选择 Subject Name Format 下的值。
3. Attribute Contract 选项卡的 Extend the Contract 字段中,配置以下设置,并在每个值后单击 Add
延长合同期限
属性名称格式
group
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
uid
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
email
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
单击 Next
4. Authentication Source Mapping 选项卡上,单击 Map New Authentication PolicyAuthentication Policy Mapping 页面随即打开,在此页面中您需要为身份验证策略映射指定设置。
D) 配置身份验证策略映射设置
1. Authentication Policy Mapping 页面上的 Authentication Policy Contract 列表中,选择您在第 2 部分 - 步骤 2 中创建的属性合同,即 SPContract。单击 Next
2. Mapping Method 选项卡上,单击 USE ONLY THE AUTHENTICATION POLICY CONTRACT VALUES IN THE SAML ASSERTION,然后单击 Next
3. Attribute Contract Fulfillment 选项卡上,为 emailgroupSAML_SUBJECTuid 身份验证策略合同选择以下值:
Source 列表中,选择 Authentication Policy Contract
Value 列表中,从列表内选择相应条目。
单击 Next
4. 跳过 Issuance Criteria 选项卡上的设置,然后单击 Next
5. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneAssertion Creation 页面随即打开,在此页面中您需要查看断言创建的配置设置。
E) 查看断言创建配置设置
1. Assertion Creation 页面上的 Authentication Source Mapping 选项卡显示了映射新身份验证策略时所选择的信息。单击 Next
2. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneBrowser SSO 页面随即打开。
3. Browser SSO 页面上的 Assertion Creation 选项卡显示了配置断言创建时所输入的信息。单击 Next
4. Protocol Settings 选项卡上,单击 Configure Protocol SettingsProtocol Settings 页面随即打开,在此页面中您需要指定协议设置。
F) 配置和查看协议设置
1. 请在 Protocol Settings 页面的 Assertion Consumer Service URL 选项卡上执行以下操作:
a. 选中 Default 复选框。
b. Index 字段中,键入 0
c. Binding 列表中,选择 POST
d. Endpoint URL 字段中,键入 /Thingworx/saml/SSO
e. 单击 Add,然后单击 Next
2. Allowable SAML Bindings 选项卡上,选择 POST 复选框,然后单击 Next
3. Signature Policy 选项卡上,选择以下选项,然后单击 Next
REQUIRE AUTHN REQUESTS TO BE SIGNED WHEN RECEIVED VIA THE POST OR REDIRECT BINDINGS
ALWAYS SIGN THE SAML ASSERTION
4. Encryption Policy 选项卡上,选择 The Entire Assertion,然后单击 Next
5. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneBrowser SSO 页面随即打开。
6. Browser SSO 页面上的 Protocol Settings 选项卡显示了配置协议设置时所选择的信息。单击 Next
7. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneSP Connection 页面随即打开。
8. SP Connection 页面的 Browser SSO 选项卡上,单击 Next
9. Credentials 选项卡上,单击 Configure CredentialsCredentials 页面随即打开,在此页面中您需要指定设置以配置凭据。
G) 配置凭据
1. 请在 Digital Signature Settings 选项卡上执行以下任务:
a. SIGNING CERTIFICATE 列表中,从列表内选择证书。
b. 选中 INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 复选框。
单击 Next
2. Signature Verification Settings 选项卡上,单击 Save Draft
3. 单击 Manage All,然后单击 Save
H) 配置签名验证设置并导入和加密证书
1. 要恢复已保存的配置,请单击 Identity Provider,然后在 SP Connections 中单击 Manage All
2. 单击已另存为草稿的 SP 连接 TWX_SP,然后单击 Manage Signature Verification Settings
3. Trust Model 选项卡上,选择 UNANCHORED,然后单击 Next
Signature Verification Certificate 上,列表中无可用证书。
4. 单击 Manage Certificates,然后单击 Import
5. Import Certificate 选项卡上,单击 Choose file 并浏览至第 5 部分 - 步骤 1 中创建的证书文件,然后单击 Next
6. Summary 选项卡中,确保 MAKE THIS THE ACTIVE CERTIFICATE 复选框处于选中状态。
7. 查看 Summary 页面上的信息。如果信息正确无误,请单击 DoneCertificate Management 页面随即打开。
8. 单击“完成”Signature Verification 页面随即打开。
9. Signature Verification Certificate 选项卡上,您应看到所导入的证书。单击 Next
10. Summary 页面上,单击 Done
11. Signature Verification Settings 选项卡上,单击 Next
J) 加密证书
1. Select XML Encryption Certificate 选项卡上,执行以下操作,然后单击 Next
a. Block Encryption Algorithm 选择 AES-128
b. Key Transport Algorithm 选择 RSA-OAEP
c. 从列表中选择证书。
2. 查看 Summary 选项卡中的信息。如果信息正确无误,请单击 DoneCredentials 页面随即打开,在此页面中您需要查看签名验证的设置。
K) 激活 SP 连接
1. SP Connection 页面上的 Credentials 选项卡显示了配置凭证时所选择的信息。单击 Next
2. Activation & Summary 页面的 Connection Status 下,确保连接已启用。
3. 单击 Save
连接将显示在 Identity Provider 页面上的 SP Connections 组下。
步骤 3:导出 ThingWorx 服务提供者连接元数据和 PingFederate 公用证书
A) 从 PingFederate 为 ThingWorx 导出元数据
1. PingFederate 中的 SP Connections 下,单击 Manage All
2. 对于在第 5 部分 - 步骤 2 中创建的 SP 连接,即 TWX_SP,在 Select Action 列表中,单击 Export Metadata
3. Metadata Signing 选项卡中,单击 Next
4. Export & Summary 选项卡中,单击 Export
随即将下载文件。
5. 单击“完成”
B) 导出 PingFederate 公用证书
1. PingFederate 中的 SP Connections 下,单击所选的 SP 连接 TWX_SP
2. Activation & Summary 选项卡的 Credentials 部分下,单击 Digital Signature Settings,然后执行以下操作:
3. 单击 Manage Certificates
4. 对于证书,请在 Select Action 列表中单击 Export
5. 选中 CERTIFICATE ONLY 复选框,然后单击 Export
随即将下载文件。将此文件重命名为适当名称。例如:pingfedsigning.crt
6. 将此 PingFederate 公用证书文件导入第 5 部分 - 步骤 1 中创建的 sso-keystore.jks KeyStore。
步骤 3:导出 ThingWorx 服务提供者连接元数据和 PingFederate 公用证书
A) 从 PingFederate 为 ThingWorx 导出元数据
1. PingFederate 中的 SP Connections 下,单击 Manage All
2. 对于在第 5 部分 - 步骤 2 中创建的 SP 连接,即 TWX_SP,在 Select Action 列表中,单击 Export Metadata
3. Metadata Signing 选项卡中,单击 Next
4. Export & Summary 选项卡中,单击 Export
随即将下载文件。
5. 单击 Done,然后单击 Save
B) 导出 PingFederate 公用证书
1. PingFederate 中的 SP Connections 下,单击所选的 SP 连接 TWX_SP
2. Activation & Summary 选项卡的 Credentials 部分下,单击 Digital Signature Settings,然后执行以下操作:
3. 单击 Manage Certificates
4. 对于证书,请在 Select Action 列表中单击 Export
5. 选中 CERTIFICATE ONLY 复选框,然后单击 Export
随即将下载文件。将此文件重命名为适当名称。例如:pingfedsigning.crt
6. 将此 PingFederate 公用证书文件导入第 5 部分 - 步骤 1 中创建的 sso-keystore.jks KeyStore。
第 6 部分:配置 ThingWorx 以进行单点登录 
1. 停止 ThingWorx 服务器。
2. 请按照 配置 ThingWorx 以进行单点登录 中详细介绍的步骤进行操作。
配置完 ThingWorx 以进行单点登录后,您的 ssoSecurityConfig 必须包含以下文件:
第 7 部分:创建 SSL 证书 
步骤 1:将 ThingWorx SSL 证书导入 PingFederate Java cacerts 文件
1. ThingWorx 创建密钥对 (KeyStore)。请确保将 ThingWorx 主机的 FQDN 用作 CN 值。
2. 从此密钥对中导出 ThingWorx 公用 SSL 证书。
3. ThingWorx SSL 证书 (.crt) 导入 PingFederate 计算机上的 Java cacerts 文件。
4. 重新启动 PingFederate
步骤 2:将 PingFederate SSL 证书导入 ThingWorx Java cacerts 文件
1. 要导出 PingFederate 证书,请执行以下操作:
a. PingFederate 中,单击 Security > SSL Server Certificates
b. 对于证书,请在 Select Action 列表中单击 Export,然后单击 Next
c. Export Certificate 选项卡上,确保默认值为 CERTIFCATE ONLY,然后单击 Next
d. Export & Summary 选项卡中,单击 Export
随即将下载证书。
e. 将证书重命名为适当名称。例如:pingfedssl.cer
2. PingFederate SSL 证书 (.crt) 导入 ThingWorx 计算机上的 Java cacerts 文件。
第 8 部分:为 ThingWorx 创建 OAuth 客户端连接 
* 
请确保 Redirect URIS 字段中无空格,并在配置结束后单击 Save
第 9 部分:验证在继续配置 SCIM 前 ThingWorx 是否启动 
1. 启动 ThingWorx
检查日志文件以确保其正确无误。
2. 使用在 AD FS 中创建的 Domain\username 登录到 ThingWorx
第 10 部分:使用 ThingWorx 配置 SCIM 
有关详细信息,请参阅设置
步骤 1:启用出站设置
1. 停止 PingFederate
2. 停止 ThingWorx
3. 在位于 <pf_install>/pingfederate/binrun.properties 文件中,其中 <pf_install>PingFederate 的安装位置,将 pf.provisioner.mode 的值更新为 STANDALONE
pf.provisioner.mode=STANDALONE
4. 启动 PingFederate
步骤 2:为 Active Directory 创建数据存储
1. PingFederate 中,搜索 Data Stores
2. 单击 Add new Data Store
3. 输入 NAME,例如 LDAP_ADFS,将 TYPE 选为 Directory (LDAP),然后单击 Next
4. 对于 HOSTNAME(S),请提供 AD FS 计算机的 FQDN。
5. 对于 USER DN,请输入 cn=Administrator,cn=Users,dc=thingworx,dc=com
6. 对于 PASSWORD,请提供您在 Active Directory 中设置的相同管理员密码,然后单击 Next
7. Summary 选项卡上,单击 Save
有关详细信息,请参阅将 LDAP 添加为数据存储
步骤 3:创建密码凭据验证器实例
1. PingFederate 中,搜索 Password Credential Validators
2. 单击“创建新实例”
3. 提供 INSTANCE NAMEINSTANCE ID 的值。
4. TYPE 列表中,选择 Simple Username Password Credential Validator,然后单击 Next
5. Instance Configuration 选项卡上,单击 Add a new row to ‘Users’
6. 提供现有 ThingWorx 用户 (例如管理员) 的 UsernamePassword。单击 Update,然后单击 Next
7. Summary 选项卡上,相继单击 DoneSave
有关详细信息,请参阅配置密码凭据验证器实例
步骤 4:将密码凭据验证器实例映射至持久化授权合同
1. PingFederate 中,搜索 Resource Owner Credentials Grant Mapping
2. SOURCE PASSWORD VALIDATOR INSTANCE 中,选择于上面创建的验证器,然后单击 Add Mapping
3. Attribute Sources & User Lookup 选项卡上,单击 Next
4. Contract Fulfillment 选项卡上,将 Source 设置为 Password Credential Validator,将 Value 设置为 username,然后单击 Next
5. Issuance Criteria 选项卡上,单击 Next
6. Summary 选项卡上,单击 Save
有关详细信息,请参阅配置密码凭据验证器实例
步骤 5:为 SCIM 创建 OAuth 客户端
OAuth 客户端是 PingFederateThingWorx 提供访问令牌的连接点。服务提供者使用这些访问令牌向 ThingWorx 请求受 OAuth 保护的资源。
1. PingFederate 中,搜索 Clients 并打开搜索结果。单击 Add Client
2. CLIENT IDNAME 提供唯一值。
3. CLIENT AUTHENTICATION 设置为 CLIENT SECRET
4. 对于 CLIENT SECRET,请选中 CHANGE SECRET 复选框,然后单击 Generate Secret
请记下 CLIENT IDCLIENT SECRET 的值以便在配置 sso-settings.json 文件中的 SCIMAccessTokenServicesSettings 部分时使用。
5. REDIRECT URIS 字段中,输入 https://{THINGWORX HOST}:8443/Thingworx/SCIMProvider/SCIM,然后单击 Add
6. 对于 ALLOWED GRANT TYPES,请选中 Client CredentialsResource Owner Password CredentialsAccess Token Validation (Client is a Resource Server) 复选框。
7. DEFAULT ACCESS TOKEN MANAGER 设置为 Default
8. 请确保按下图所示设置其余值:
9. 单击 Save
有关详细信息,请参阅为 SCIM 创建 OAuth 客户端
步骤 6:在 platform-settings.json 文件中配置 SCIM
步骤 7:验证 SCIM 子系统是否正在运行
1. 启动 ThingWorx 服务器。
2. ThingWorx Composer 中,单击 Browse 并选择 Subsystems
3. 选择 SCIMSubsystem,然后验证其是否正在运行。
步骤 8:映射用户名和 USER_KEY
1. PingFederate 中,搜索 Access Token Management
2. 单击“创建新实例”
3. 提供 INSTANCE NAME
4. 对于 INSTANCE ID,请键入 default
5. TYPE 设置为 Internally Managed Reference Tokens,然后单击 Next
6. Instance Configuration 选项卡上,单击 Next
7. Session Validation 选项卡上,单击 Next
8. Access Token Attribute Contract 选项卡上,执行以下操作,然后单击 Next
a. Extend the Contract 下,为 Windchill 添加 Username,然后单击 Add
* 
请确保指定与此处所述相同的大小写。
b. Extend the Contract 下,为 SCIM 添加 username,然后单击 Add
* 
请确保指定与此处所述相同的大小写。
9. Resource URIs 选项卡上,单击 Next
10. Access Control 选项卡上,单击 Next
11. Summary 选项卡上,单击 Save
12. 搜索 Access Token Mapping,然后单击 Add Mapping (添加至 Default 上下文)。
13. 单击 Next,直到来到 Contract Fulfillment 选项卡。
14. Contract Fulfillment 选项卡上,对于 Usernameusername 合同,请执行以下操作:
Source 设置为 Persistent Grant
Value 设置为 USER_KEY
15. Issuance Criteria 选项卡上,单击 Next
16. Summary 选项卡上,单击 Save
步骤 9:为 SCIM 定义服务提供者连接
1. PingFederate 中,搜索 SP CONNECTIONS 并创建新连接。
2. Connection Template 选项卡上,选择 DO NOT USE A TEMPLATE FOR THIS CONNECTION,然后单击 Next
3. CONNECTION TYPE 选项卡上,执行以下操作,然后单击 Next
a. 请确保 BROWSER SSO PROFILES 复选框处于未选中状态。
b. 选择 OUTBOUND PROVISIONING 复选框,并将 TYPE 设置为 SCIM 1.1 Service Provider
4. General Info 选项卡上,执行以下操作,然后单击 Next
a. 指定 PARTNER’S ENTITY ID (CONNECTION ID)CONNECTION NAME。例如:SCIM_ADFS_SP
b. BASE URL 字段中,输入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider
* 
在将 URL 复制到 PingFederate 时,请确保其末尾无空格。
5. Outbound Provisioning 选项卡上,单击 Configure Provisioning
6. Custom SCIM Attributes 选项卡上,执行以下操作,然后单击 Next
a. USERS RESOURCE URL 字段中,输入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Users
* 
在将 URL 复制到 PingFederate 时,请确保其末尾无空格。
b. GROUPS RESOURCE URL 字段中,输入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Groups
* 
在将 URL 复制到 PingFederate 时,请确保其末尾无空格。
c. AUTHENTICATION METHOD 设置为 OAUTH 2.0 BEARER TOKEN
d. USER 指定为 Administrator,然后输入 PASSWORD
e. sso-settings.json 文件中指定 CLIENT IDCLIENT SECRET 的值。
f. TOKEN END POINT URL 中,输入 https://PingFederate Host:9031/as/token.oauth2
* 
请确保 URL 末尾无空格。
g. 请确保 SCIM SP SUPPORTS PATCH UPDATESPROVISION GROUPS WITH DISTINGUISHED NAME 复选框处于未选中状态。
h. DEPROVISION METHOD 设置为 DELETE USER
7. Custom SCIM Attributes 选项卡上,单击 Next
有关详细信息,请参阅为 SCIM 定义 SP 连接
步骤 10:为数据存储创建信道
1. Manage Channels 选项卡上,单击 Create
2. 提供 CHANNEL NAME
3. ACTIVE DATA STORE 选为于步骤 2 中创建的数据存储,即 LDAP_ADFS,然后单击 Next
4. Source Settings 选项卡上,单击 Next
5. Source Location 选项卡上,执行以下操作,然后单击 Next
a. BASE DN 字段中,输入 cn=users,dc=thingworx,dc=com
b. Users 下的 FILTER 字段中,输入 (&(objectCategory=person)(objectClass=user)(cn=*))
c. Groups 下的 FILTER 字段中,输入 (&(objectCategory=group))
6. Attribute Mapping 选项卡上,单击 Next
7. Activation & Summary 选项卡上,将 Channel Status 设置为 ACTIVE,然后单击 Done
8. Manage Channels 选项卡上,单击 Done
9. Outbound Provisioning 选项卡上,单击 Next
10. 确保 SP 连接处于活动状态 (绿色),然后单击 Save
SP 连接随即列于 SP 连接页面上。
有关详细信息,请参阅为数据存储创建信道
步骤 11:添加 LDAP 二进制属性
1. 转至 SYSTEM > Data & Credential Stores > Data Stores
2. 单击 LDAP_ADFS 数据存储,然后选择 LDAP Configuration 选项卡。
3. 单击 Advanced 以查看其他绑定设置和配置。
4. 单击 LDAP Binary Attributes 选项卡,然后添加值为 objectGUID 的新二进制属性。
5. 单击 Save
第 11 部分:将 Windchill 配置为资源服务器 
步骤 1:先决条件
Windchill 已配置为 SSL/OAuth 2.0。
ThingWorxPingFederate SSL 证书已导入 Windchill 计算机上的 jssecacerts/cacerts 文件。
已为 ThingWorx 实例配置 Integration Runtime。有关详细信息,请参阅集成连接器的 Integration Runtime 服务的初始设置
Windchill SSL 证书已导入 ThingWorx 计算机上的 jssecacerts/cacerts 文件。
Windchill SSL 证书已导入 PingFederate 计算机上的 jssecacerts/cacerts 文件。
步骤 2:完成 Windchill OAuth 2.0 文件配置
更新 <WC_install_root>\Windchill\codebase\WEB-INF\security\config 处提供的 securityContext.properties 文件:
checkTokenEndpointUrl - PingFederate 计算机的 FQDN。
clientId - OAuth 客户端 ID,例如 wnc-rp-client
clientSecret - OAuth 客户端密码。
resourceScopes - Windchill 范围,例如 WINDCHILL_READ
步骤 3:为作为资源服务器的 Windchill 创建 OAuth 客户端
* 
可从 securityContext.properties 文件中检索 clientIdclientSecret 的值。
步骤 4:在 PingFederate 中创建 Windchill 范围
1. PingFederate 中的 OAuth Settings 页面上,单击 Scope Management
2. Scope Value 下,单击 Add 以添加相同的范围,例如在 securityContext.properties 文件中为 resourceScopes 值添加的 WINDCHILL_READ
3. 单击 Save
这对您有帮助吗?