PingFederate でのクライアント資格証明付与タイプの実装
このトピックでは、OAuth クライアント資格証明付与タイプを使用してリソースへのアクセスを承認し、リソースオーナーを認証する手動の手順について説明します。ここで、OAuth クライアントは PingFederate を CAS として使用するサービスプロバイダです。Windchill サーバーはリソースサーバーです。Atlas で構成されているシステムで LDAP プロトコルが OAuth プロトコルに置き換えられたことに伴い、Windchill は OAuth/トークンベースの認証を使用して API を呼び出す必要があります。
必要条件
ここでのすべてのサブセクションは、中央認証サーバー (CAS)、Windchill、およびクライアントアプリケーションが OAuth 用に設定されていることを前提としています。Windchill は OAuth を使用するリソースサーバーとして設定されている必要があります。OAuth クライアントはサービスプロバイダとして登録されている必要があります。
PingFederate クライアント資格証明登録
クライアント資格証明登録を行うには、PingFederate で以下の手順に従います。
1. 拡張プロパティの作成 - > でプロパティ serviceprincipal を作成します。
2. アクセストークンマッピング - > で新しいアクセストークンマッピングを作成します。コンテキスト (クライアント資格証明) とデフォルトのアクセストークンマネージャを選択します。
3. 契約履行 - 手順 1 で拡張プロパティとして設定したユーザー属性 serviceprincipal を使用して契約履行を設定します。
PingFederate でのクライアント登録の手順
CAS (PingFederate) でクライアントを登録するには、PingFederate で以下の手順に従います。
1. > > > で新しいクライアントを作成します。「Client ID」と「Name」に入力します。
2. 「Client Authentication」で「Client Secret」を選択します。
3. クライアントシークレットを生成し、安全な場所にコピーして後から使用できるようにします。
4. 付与タイプをクライアント資格証明に設定します。
5. デフォルトのアクセストークンマネージャをデフォルトに設定します。
6. その他のコンフィギュレーションについては、で説明されている手順に従います。
承認されたアプリケーションからのアクセストークンリクエスト
Web アプリケーションサーバーは、アクセストークンを取得するために認証コードを交換します。このために、認証サーバーのトークンエンドポイントに対して POST リクエストが行われます。リクエストボディには、以前に取得した認証コードが含まれています。リクエストボディのコンテンツタイプは application/x-www-form-urlencoded でなければなりません。リクエスト URI の詳細は次のとおりです。
#URI
POST <URL_CAS_SERVER_TOKEN>
#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=authorization_code&client_id=sp1-oauth2-client&client_secret=sp1-oauth2-client_1234&scope= WINDCHILL_READ
#Example of the Response code
{
"scope": "WINDCHILL_READ",
"active": true,
"token_type": "Bearer",
"exp": 1714125449,
"client_id": "wcadmin"
"serviceprincipal": "wcadmin"
}
パラメータ
|
説明
|
grant_type
|
このフローの付与タイプは client_credentials です。
|
CLIENT_ID
|
CAS で生成されたこの Web アプリケーション用クライアント ID。PTC の ID とアクセスの管理のヘルプセンターの「Windchill 用の OAuth クライアント接続の作成」のトピックを参照してください。
|
CLIENT_SECRET
|
これは、この Web アプリケーションを設定する際に CAS で入力したクライアントシークレットです。PTC の ID とアクセスの管理のヘルプセンターの「Windchill 用の OAuth クライアント接続の作成」のトピックを参照してください。
|
SCOPE
|
Windchill または WRS にアクセスする場合、WINDCHILL_READ でなければなりません。
|