在 PingFederate 中实现客户端登录凭据授权类型
本主题介绍有关使用 OAuth 客户端登录凭据授予类型来授权访问资源和验证资源所有者的手动步骤。此处,OAuth 客户端是服务提供者,PingFederate 是 CAS。Windchill 服务器是资源服务器。由于 LDAP 协议已替换为 OAuth 协议,Windchill 需要使用基于 OAuth/令牌的身份验证来调用 API。
先决条件
此处的所有子部分均假定已将中央授权服务器 (CAS)、Windchill 和客户端应用程序配置为使用 OAuth。必须使用 OAuth 将 Windchill 配置为资源服务器。OAuth 客户端必须注册为服务提供者。
客户端登录凭据授权类型的 Windchill 用户
与客户端凭据授予类型配合使用的 Windchill 承担者是一个计算机标识,旨在表示用于与 Windchill 集成的非交互式客户端计算机。它代表非人类身份标识,且必须像任何其他用户一样,在 LDAP 中进行定义。但是,此类用户只能用于集成目的。将 Ping Federate 中的客户端凭据与 Windchill 中的标识相关联的过程如下所述。
必须控制计算机标识的使用,以确保对其进行安全管理。标识、客户端 ID 和密码应由 Windchill 管理员管理,而不能共享。Windchill 中的特定操作不应也不能根据计算机标识来完成,例如:
• 不能以此标识帐户直接登录到 Windchill 应用程序。
• 不能在 LDAP 中设置密码。不能通过 SSO 管理登录凭据。
• 不应以此标识执行任何 UI 活动或操作。
• 切勿将用来实现人工审批或确认的电子签名或工作流任务分配给此标识。
在 PingFederate 中注册客户端登录凭据的先决条件步骤
在 PingFederate 中,请按照以下步骤注册客户端登录凭据:
1. 创建扩展特性 - 在 > 中,创建 serviceprincipal 特性。
2. 访问令牌映射 - 在 > 中创建新的访问令牌映射。选择上下文 (客户端登录凭据) 和默认访问令牌管理器。
3. 合约履行 - 配置合约履行,并将用户属性配置为 serviceprincipal (此属性在步骤 1 中被配置为扩展特性)。
在 PingFederate 中注册客户端的步骤
在 PingFederate 中,请按照以下步骤注册 CAS (PingFederate) 客户端:
1. 在 > > > 中创建新客户端。提供 Client ID 和 Name。
2. 在客户端 Authentication 中选择 Client Secret。
3. 生成客户端密码,并将其复制到安全位置,以供未来之用。
4. 设置客户端登录凭据授予类型。
5. 将默认访问令牌管理器设置为 default。
6. 创建 Windchill 用户,将其用作服务帐户。将此 Windchill 用户名设置为上述 serviceprincipal 特性值。
从授权的应用程序访问令牌请求
OAuth 客户端应通过向授权服务器的令牌端点提交 POST 请求来获取访问令牌。请知悉,请求正文必须具有 application/x-www-form-urlencoded 内容类型。请求 URI 详情如下:
#URI
POST <CAS_SERVER_TOKEN_URL>
#Request Headers
Content-Type: application/x-www-form-urlencoded
#Request Body
grant_type= client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&scope=<scope>
#Example of the URI
POST https://<host>:<port>/as/token.oauth2
Content-Type: application/x-www-form-urlencoded
grant_type= client_credentials&client_id=sp1-oauth2-client&client_secret=sp1-oauth2-client_1234&scope= WINDCHILL_READ
参数
|
说明
|
grant_type
|
此工作流的授予类型为 client_credentials。
|
CLIENT_ID
|
在 CAS 中为此 Web 应用程序生成的客户端 ID。
|
CLIENT_SECRET
|
这是在配置此 Web 应用程序时,在 CAS 中输入的客户端密码。
|
SCOPE
|
在访问 Windchill 或 WRS 时,此参数的值必须为 WINDCHILL_READ。
|