CAC/PIV カードの利用者は、ブラウザーで DTP を開き、JWT Access Token for OAuth 2.0 で自動的に認証することができます。CAC/PIV カードの利用者は、ブラウザーで License Server を開き、JWT Access Token for OAuth 2.0 で自動的に認証することができます。 この設定を行うには、以下の手順に従ってください。
JWT アクセス トークンによる認証の有効化
OAuth 2.0 の JWT アクセス トークンによる認証を有効にするには、ご使用の OS に合わせて、<DTP_INSTALLDIR>/bin/variables ファイルに以下の JVM 引数を追加します。
Linux
JAVA_CONFIG_ARGS=-Dcom.parasoft.oauth2.jwks.uri=<JWKS endpoint>
Windows
DTP_JAVA_OPTS=-Dcom.parasoft.oauth2.jwks.uri=<JWKS endpoint>
OAuth 2.0 の JWT アクセス トークンによる認証を有効にするには、ご使用のディストリビューションに応じて、以下の手順を実行します。
Linux:自己展開型ディストリビューション
次の行を追加して <LSS_INSTALLDIR>/app/setVars.sh を変更します:
JAVA_OPTS=-Dcom.parasoft.oauth2.jwks.uri=<JWKS endpoint>
Windows:自己展開型ディストリビューション
次の行を追加して <LSS_INSTALLDIR>/app/setVars.bat を変更します:
JAVA_OPTS=-Dcom.parasoft.oauth2.jwks.uri=<JWKS endpoint>
Web アーカイブ (war) ディストリビューション
JVM 引数に以下を追加します:
-Dcom.parasoft.oauth2.jwks.uri=<JWKS endpoint>
ユーザー名の設定
有効にした場合、DTP は oidc.json で定義されたマッピングを使用して、JWT アクセス トークンからユーザー名を抽出します。有効にした場合、License Server は oidc.json で定義されたマッピングを使用して、JWT アクセス トークンからユーザー名を抽出します。<DTP_DATA_DIR>/conf ディレクトリにある oidc.json ファイルを開き、usernames を設定します。
{ "enabled": false, "issuerUri": "your issuer uri", "clientId": "your client id", "clientSecret": "your client secret", "scopes": ["openid", "profile", "email"], "claimMappings": { "username": "preferred_username", "firstName": "given_name", "lastName": "family_name", "email": "email" }, "adminUsers": [] }
claimMappings > username
属性のデフォルト値はpreferred_username
です。 JWT アクセス トークンのユーザー名が異なる要素名にマッピングされている場合は、この値を変更します。このファイル内の他の属性は、JWT アクセス トークンによる認証が有効な場合は無視されるので、設定する必要はありません。
ファイルを設定したら、変更を保存して DTP サービスを再び開始します。ファイルを設定したら、変更を保存して License Server サービスを再び開始します。
JWT Token モードでの API の使用
DTP が JWT トークン モードのときに DTP または Enterprise Pack の API にアクセスするには、Authorization プロパティを使用して、リクエスト ヘッダーで API エンドポイントにアクセス トークンを渡します。 License Server が JWT トークン モードのときに License Server または Enterprise Pack の API にアクセスするには、Authorization プロパティを使用して、リクエスト ヘッダーで API エンドポイントにアクセス トークンを渡します トークンは次の形式で渡されます。
Authorization: Bearer <access token>
アクセス トークンを取得する方法については、ID アクセス管理ソフトウェアのドキュメントを参照してください。
方法に関係なく、API 呼び出しごとにトークンを渡す必要があります。
次の例では、値 "1234567890" のトークンが DTP ビルド API エンドポイントに渡されます。
curl -X GET -H "Authorization: Bearer 1234567890" http://dtp.host.com/grs/api/v1.7/builds?limit=1000&offset=0