DTP を、OpenID Connect ID プロバイダーからの認証を受け入れるよう設定できます。これにより、Parasoft の外部でユーザー認証を管理できます。OpenID Connect のサポートはデフォルトでは無効です。このセクションの内容:
基本設定
DTP、および OIDC サーバーでの設定が必要です。
OIDC サーバーでの設定
まだ登録していない場合は、 DTP を OpenID Connect ID プロバイダーで登録します。oidc.json ファイルで使用されている属性の値を認証サーバーから取得できます (Keycloak、connect2id など)。
必要なリダイレクト URI を登録して、認証後のユーザーのリダイレクト先を OIDC サーバーに設定します。 次のリダイレクト URI を登録する必要があります。
必須:
- <dtp_server>/pst/login/oauth2/code/dtp
- <dtp_server>/pstsec/login/oauth2/code/dtp (User Administration)
- <dtp_server>/grs/login/oauth2/code/dtp (Required for Report Center/Enterprise Pack)
任意。次のリダイレクト URI の登録は任意です。個々のアプリケーションから直接ログインできるようにする場合にだけ登録が必要です。
- <dtp_server>/tcm/login/oauth2/code/dtp (Team Server)
- <dtp_server>/licenseserver/login/oauth2/code/dtp (License Server)
- <data_collector>/login/oauth2/code/dtp (Data Collector)
DTP の設定
次の場所にある oidc.json ファイルを開きます: <DTP_DATA_DIR>/conf ディレクトリ。
以下の値を指定します (すべての属性が必須です)。
"enabled": true, "issuerUri": "<認証サーバーへのパス>", "clientId": "<OpenID Connect サーバーが提供する ID>", "clientSecret": "<OpenID Connect サーバーが提供するパスワード>", "usernameAttribute": "preferred_username" "adminUsers": [" <Parasoft 管理者である既知のユーザー> "]
issureUri
パラメータの値は、承認サーバーの URI です。URI に/.well-known/openid-configuration
が追加され、ファイルの処理時に完全な検出エンドポイントを作成します。usernameAttribute
はデフォルトでpreferred_username
に設定されます。OpenID Connect サーバーが異なる値を返す場合にのみ、この値を変更する必要があります。詳細については「Example Configurations」を参照してください。adminUsers
パラメーターの値は、ログイン時に管理者権限を付与される必要がある既存ユーザーの配列です。権限に関する情報について「User Administration の概要」も参照してください。oidc.json ファイルは、管理ユーザーが初めてログインする前に設定する必要があります。そうしないと、管理機能を実行するために必要な権限がない状態でユーザーがデータベースに追加されます。
変更を保存して DTP サービスを再起動します。
DTPのログイン ページにアクセスすると、OpenID Connect 認証インターフェイスにリダイレクトされます。資格情報を入力すると、ログインして DTP にリダイレクトされます。
設定の例
次の例は、DTP を ID アクセス管理システムに接続する方法を分かりやすくするためのものです。詳細については、ご使用のソフトウェアのドキュメントを参照してください。
Keycloak
以下は、この例で説明しているように、Keycloak 用に OpenID Connect を設定するための前提条件です。
- Keycloak は、デフォルトの署名アルゴリズムとして RS256 を使用する必要があります。
- Keycloak からのアクセス トークンには、Keycloak
userinfo API
エンドポイントから取得できるユーザー情報が含まれている必要があります。 - 次のリダイレクト URI を登録する必要があります。
- host:port/* (default windows port is 80, linux port is 8080)
- host:8314/*
- host:8082/* (Data Collector アップロード フォーム用)
この例では、demo
がレルムの名前であり、2 人の管理者ユーザー (admin1
および admin2
) が作成されます。
"enabled": true, "issuerUri": "https://host:8095/auth/realms/demo/", "clientId": "pstsec", "clientSecret": "4d35ef23-aec5-44d7-9c59-18092bd619e8", "usernameAttribute": "preferred_username" "adminUsers": ["admin1","admin2"]
詳細については Keycloak のドキュメント を参照してください。
次の例は、Google 用に OpenID Connect を設定する方法を示しています。この例では、2 人の管理者ユーザー (admin1
および admin2
) を作成します。
"enabled": true, "issuerUri": "https://accounts.google.com", "clientId": "<clientId-from-google>", "clientSecret": "<clientSecret-from-google>", "usernameAttribute": "given_name", "adminUsers": ["admin1","admin2"]
詳細については Google のドキュメント を参照してください。
Connect2id
次の例は、connect2id 用に OpenID Connect を設定する方法を示しています。
Connect2id を OpenID Connect プロバイダーとして使用する場合、ユーザーは DTP に HTTPS 経由で DTP にアクセスする必要があります。
この例では c2id
が realm の名前です。2人の管理者ユーザー (admin1
および admin2
) が作成されます。
"enabled": true, "issuerUri": "https://host:port/c2id", "clientId": "<clientId-from-c2id>", "clientSecret": "<clientSecret-from-c2id>", "usernameAttribute": "sub", "adminUsers": ["admin1","admin2"]
詳細については connect2id のドキュメント を参照してください。
既知の制限事項
connect2id を介して DTP に初めてログインすると、"Invalid Request” エラーが表示される場合があります。このエラーを解決するには、別のブラウザーを使用するか、現在のブラウザーのキャッシュをクリアします。
OpenID Connect モードでの API の使用
DTP が OpenID Connect モードである場合、 DTP または 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