外部認証の場合、TDGSSはJWTを中央IdPと交換し、交換後にユーザーを検証します。この操作を行なうには、JWTが中央IdPから取得されたのか、または外部IDプロバイダから取得されたのかを識別します。TDGSSは、JWTペイロードの発行者「iss」クレームを使用して、IDプロバイダを識別します。クライアント アプリケーションは、次の手順に従ってデータベースに対する認証を試みます。
- クライアントが認証されると、ゲートウェイはClientId (sso-devなど)とIdpUrL (https://sso-idp-dev.iam.teradatacloud.io/.well-known/openid-configurationなど)を含む構成応答をクライアントに送信します。この情報は、TdgssUserConfigFile.xmlの<GlobalValues>セクションで定義されています。
- 次に、クライアントは外部IdPに対してJWTトークンを要求します。
- クライアントはゲートウェイにJWTを送信してセッションにログオンします。
- ゲートウェイはトークンを検証します。
- TDGSSはペイロードを調べて、発行者のクレームを取得します。
- TDGSSは、TDGSS構成から中央IdP発行者のクレームを取得します。
- TDGSSは、中央IdP発行者とJWTの「iss」クレームを比較します。
- トークン交換による検証: 発行者が一致しない場合は、トークン交換が行なわれます。
- TDGSSは構成から構成済み外部IDプロバイダの発行者を取得します。
- TDGSSは、外部IdP発行者とJWTの「iss」クレームを比較します。
- これらが一致しない場合はエラーが生成され、ユーザーは認証されません。
- これらが一致する場合は、中央IdPからのJWTを交換するためにREST API呼び出しが行なわれます。
- 中央IdPからのJWTを交換した後に、TDGSSはJWTを検証します。
- JWTはセッション制御テーブルに保存され、他のVantageサービスに対する認証に使用されます。
トークン エクスチェンジャ検証用にJWTメカニズムを構成するには、トークン エクスチェンジャによる検証を参照してください。
次の表は、中央IdPから交換トークンを取得するために必要な情報を示しています。
parameter | 説明 |
---|---|
subject_issuer | 外部IdP (アクセス トークン発行者)が中央IdPに登録されるときに使用する別名。このパラメータは、中央IdPの場合のみ必須です。 |
subject_token | 外部IdPによって発行された有効なJWTアクセス トークン。 |
client_id | 交換されたトークンを使用する予定の中央IdPに登録されたターゲット アプリケーションのクライアントID。交換されるトークンの内容は、client_idに関連付けられているマッパーによって決まります。 |
client_secret | ターゲット アプリケーションのクライアント シークレット。 |
subject_token_type | 定数値: urn:ietf:params:oauth:token-type:access_token |
grant_type | 定数値: urn:ietf:params:oauth:grant-type:token-exchange |
token_endpoint | 中央IdPの/tokenエンドポイント。通常は、次の形式のURLです。 https://<idp-host>/auth/realms/<realm name>/protocol/openid-connect/token |