示例:PingFederate 作为标识提供者,Windchill DS 作为数据存储
本示例提供了如何配置下类 SSO 环境的详细步骤:此类 SSO 环境已在 PingFederate 作为中央身份验证服务器 (CAS) 和标识提供者 (IdP) 以及 Windchill DS 作为数据存储的前提下将 ThingWorx 配置为单一登录。
下表显示了该示例中配置的应用程序及其角色:
角色
|
应用程序
|
服务提供者
|
ThingWorx
|
授权服务器
|
PingFederate
|
标识提供者
|
PingFederate (受 Windchill DS 支持)
|
在 Windchill 12.0.1.0 中,Windchill DS 已从技术堆栈中移除。有关详细信息,请访问 此处。您可以使用 LDAP V3 替代 Windchill DS。
|
|
PTC 为本示例中讨论的
PingFederate 配置提供了自动化脚本。有关详细信息,请参阅
自动将 PingFederate 配置为中央身份验证服务器。
下图显示了本示例中所讨论的配置。
第 1 部分:先决条件
• 确保已对 ThingWorx 进行了全新安装。
安装后停止 ThingWorx 服务器。
• 确保已设置了 Windchill DS。
| 为 PingFederate 版本安装适当的 Java 版本。在 PingFederate 计算机上,设置 JAVA_HOME 环境变量并更新 PATH 变量以相应地包括 Java。 |
第 2 部分:运行脚本前
步骤 1:创建 PingFederate 全局 SSL 证书并将其导出
1. 以管理员身份登录到 PingFederate,然后导航至 > 。
2. 单击 Create New 以创建全局 SSL 证书,然后执行以下操作:
a. 在 Common Name 字段中,提供 PingFederate 计算机的 FQDN。
b. 在该页面上提供其他详细信息,然后单击 Next。
c. 单击 Done,然后单击 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 Server 和 Deactivate for Admin Console。
b. 删除 localhost 证书,然后单击 Save。
4. 要导出 PingFederate 全局 SSL 证书,请执行以下操作:
a. 对于所创建的证书,请单击 Export。
b. 选择 Certificate Only,然后单击 Next。
c. 单击 Export。
证书将被导出至默认的 Downloads 文件夹。
d. 单击 Done,然后单击 Save。
步骤 2:将证书文件保存至 PingFederate 自动配置 input 文件夹
自动配置过程需提供证书作为输入。必须将以下证书文件保存至自动配置工具的 input 文件夹中。input 文件夹位于 sso-config-pingfed-X.Y/input,其中 X.Y 表示 PingFederate 版本。
◦ 将已导出的 PingFederate 全局证书 (.crt) 文件复制到 Downloads 文件夹。
◦ 要创建 thingworx.cer 文件并将其复制到 input 文件夹,请执行以下操作:
a. 在 <ThingWorx Installation Folder>/ThingworxPlatform 文件夹中,创建 ssoSecurityConfig 文件夹。
b. 如下所示,创建 JKS 类型的 KeyStore、将其命名为 sso-keystore.jks,然后将其保存在 ssoSecurityConfig 文件夹中:
▪ 生成密钥对。
▪ 将证书的公共名称指定为 ThingWorx。
c. 将证书链导出至 ssoSecurityConfig 文件夹。
ssoSecurityConfig 文件夹中应包含以下文件:
▪ sso-keystore.jks
▪ thingworx.cer
d. 将 thingworx.cer 文件复制到 sso-config-pingfed-X.Y/input 文件夹。
input 文件夹中必须包含以下文件:
▪ <Exported_SSL_Certificate-From_PingFederate>.crt
▪ thingworx.cer
步骤 3:更新 user.properties 文件
步骤 4:更新 default.properties 文件
第 3 部分:运行自动化脚本
1. 确保 PingFederate 正在运行。
对于本示例中的配置,请在运行脚本的同时选取 1. PingFederate as IdP – LDAP。
第 4 部分:使用生成的构件
步骤 1:将构件复制到 ssoSecurityConfig 文件夹
1. 将 sso-config-pingfed-X.Y 下 PingFederate 自动配置的 output 文件夹中的以下文件复制到 /ThingworxPlatform/ssoSecurityConfig 文件夹:
▪ pingfed_idp_metadata.xml
▪ pingfed_signing_certificate.crt
▪ pingfed_ssl_server_certificate.crt
2. 将 pingfed_idp_metadata xml 重命名为 sso-idp-metadata.xml。
步骤 2:将应用程序层签名证书导入 ThingWorx KeyStore
将
pingfed_signing_certificate.crt 文件导入
/ThingworxPlatform/ssoSecurityConfig 文件夹中的
sso-keystore.jks 文件。有关详细信息,请参阅
使用生成的构件中的
pingfed_signing_certificate.crt 部分。
步骤 3:导入传输层证书
ThingWorx SSL 证书
1. 将 ThingWorx SSL 证书导入 PingFederate 计算机的 Java cacerts 文件。
2. 重新启动 PingFederate。
PingFederate SSL 证书
将 pingfed_ssl_server_certificate.crt (PingFederate SSL 证书文件) 导入 ThingWorx 计算机的 Java cacerts 文件。
有关详细信息,请参阅
使用生成的构件中的
pingfed_ssl_server_certificate.crt 部分。
第 5 部分 (可选):配置组映射
| 在继续操作之前,请确保已在 Windchill DS 中定义静态组。 |
在 PingFederate 中执行以下步骤:
1. 转至 > ,然后选择您的 Instance Name。
2. 在打开的页面上,选择 Extended Contract 选项卡。
3. 在 Extend the Contract 字段中,添加 isMemberOf,然后单击 Add。
4. 单击 Next 以查看 Summary 页面。
5. 在打开的 Summary 页面上,审阅您所做的更改,然后单击 Save。
6. 转至 > ,然后选择您的 Instance Name。
7. 在打开的页面上,选择 Extended Contract 选项卡。
8. 在 Extend the Contract 字段中,添加 isMemberOf,然后单击 Add。
9. 单击 Next 以查看 Adapter Attributes 页面。您不需要在此页面上进行任何更新。
10. 单击 Next,转至 Adapter Contract Mapping 页面,然后选择 Configure Adapter Contract。
11. 在 Attribute Sources & User Lookup 页面上,单击 Add Attribute Source。
a. 在 Data Store 页面上,执行下列步骤:
i. 对于 ATTRIBUTE SOURCE ID,请添加 isMemberOf。
ii. 对于 ATTRIBUTE SOURCE DESCRIPTION,请添加 isMemberOf。
iii. 对于 ACTIVE DATA STORE,请选择 Windchill 数据存储。
iv. 对于 DATA STORE,已预填充 LDAP。
v. 单击 Next。
b. 在 LDAP Directory Search 页面上,执行下列步骤:
i. 对于 BASE DN,请添加 o=ptc。
ii. 对于 SEARCH SCOPE,已预填充 Subtree。
iii. 对于 Attributes to return from search,请选择以下内容:
i. 对于 ROOT OBJECT CLASS,请选择 <Show All Attributes>。
ii. 对于 ATTRIBUTE,请选择 isMemberOf 并单击 Add Attribute。
iii. 单击 Next。
c. 在 LDAP Filter 页面上,执行下列步骤:
i. 对于 Filter,请添加 isMemberOf=${isMemberOf}。
ii. 单击 Next。
d. 在打开的 Summary 页面上,审阅您所做的更改,然后单击 Save。
12. 打开 > ,然后选择您的 Connection Name。
13. 在打开的页面上,选择 Attribute Contract 以打开 Attribute Contract 页面,然后执行以下步骤:
a. 对于 Extend the Contract,请添加 group。
b. 对于 Attribute Name Format,选择状态为 unspecified 的选项。
c. 单击“添加”。
d. 单击“下一步”。
14. 在随即打开的 Authentication Source Mapping 页面上,选择您的 Adapter Instance Name。
15. 在随即打开的 Attribute Contract Fulfilment 页面上,对您在步骤 12 中创建的 group 属性合同执行以下步骤。
a. 对于 Source,请选择 Adapter。
b. 对于 Value,请选择 isMemberOf。
c. 单击 Save。
| 记录下映射名称 (本示例中为 group),因为将需要在 ThingWorx SSO 身份验证器中使用此映射名称。有关详细信息,请参阅“ThingWorx 帮助中心”中的 单一登录身份验证主题。 |
第 6 部分:配置 ThingWorx 以进行单点登录
1. 请确保 ThingWorx 服务器已停止。
ssoSecurityConfig 必须包含以下文件:
3. 启动 ThingWorx 服务器。