建立中央授权服务器
Windchill 可配置为使用 OAuth 2.0 协议 (这是一种用于授权的行业标准协议) 实现委派授权。在此情景中,
Windchill 用作资源服务器,而 ThingWorx 用作服务提供者,这是用户主动使用的应用程序,可代表用户请求
Windchill 数据。当 ThingWorx 数据请求包含正确的访问令牌和范围时,将
Windchill 配置为授予对受保护资源的访问权限。
Windchill 通过 CAS 验证访问令牌的真实性,以此管理参与 SSO 联合的应用程序之间的信任关系。有关 PTC 产品之间受支持的 SSO 用例的最新信息,请参阅
PTC Single Sign-on Architecture and Configuration Overview Guide (《PTC 单一登录架构和配置概述指南》)。
以下过程概述了配置 OAuth 客户端和在 PingFederate 中注册范围以及配置 Windchill 以进行 OAuth 授权的步骤。
此过程假定您已根据企业的 SSO 联合要求安装并配置了 PingFederate。例如,假定您已将 PingFederate 配置为将服务提供者用户登录请求重定向到作为 SSO 联合标识提供者的 LDAP 或 ADFS。PingFederate 的许可证可供 Windchill 客户使用,而无需额外成本,并且支持的软件版本可从 PTC 软件下载网站获取。有关 PingFederate 安装和配置说明,请参阅该产品的文档和客户支持。此处提供的 PingFederate 配置说明仅限于在 Windchill 与 PingFederate 之间建立连接之用。
此过程还假定您已在 ThingWorx 中启用了 SSO,以便其可以充当服务提供者。完成此过程后,仅 Windchill 可以作为资源服务器参与 SSO 联合。要使委派授权有用,您必须在 SSO 联合中配置其他应用程序,以在请求 Windchill 数据时使用 OAuth 访问令牌。有关启用 SSO 并将其配置为服务提供者的说明,请参阅 ThingWorx 文档。
1. 在 PingFederate 中创建 Windchill 在验证访问令牌时所要连接到的 OAuth 客户端。
a. 在 OAuth Settings 页面上,找到 Clients 部分,然后单击 Create New。
b. 输入 Client ID。请记下该值,在配置 Windchill securityContext.properties 文件时需要用到此值。
c. 选择 Client Secret 并输入客户端密码值。请记下该值,在配置 Windchill securityContext.properties 文件时需要用到此值。
d. 在 Name 字段中,输入一个描述性值。该值会显示在 PingFederate 客户端列表中。
e. 输入 Description。
f. 在 Allow Grants Types 部分中,选择 Access Token Validation (Client is a Resource Server)。
g. 在 Persistent Grants Expiration 部分中,选择 Use Global Setting。
h. 在 Refresh Token Rolling Policy 部分中,选择 Use Global Setting。
2. 在 PingFederate 中注册范围。范围是您在 CAS、服务提供者和资源服务器中注册的字符串值。服务提供者从资源服务器请求数据时,必须将范围名称附加到访问令牌。
a. 在 OAuth Settings 页面上,单击 Scope Management。
b. 在 Scope Value 字段中,键入 WINDCHILL_READ,并在 Scope Description 中键入 Permission to read Windchill data,然后单击 Add。
Windchill 仅支持定义和使用一个范围。在测试中,使用了 WINDCHILL_READ 值。不能在范围名称中使用空格,因为 Windchill 使用空格来分隔范围名称。
3. 通过配置
Windchill securityContext.xml 和
Web.xml 文件在
Windchill 中启用 OAuth。有关完成这些编辑的完整说明在
配置 OAuth 委派授权中进行了详细介绍。