STSクライアントの管理
セキュリティ・トークン・サービス(STS)クライアントを使用してトークンを交換します。 IBM® Verify.NET での STS クライアントの作成および管理を行う際は、 OAuth トークン交換の仕様に従ってください。 サードパーティ製アプリを、 OAuth を保護対象リソースとして指定して検証できます。
始める前に
- IBM Verify 管理者として管理コンソールにログインしてください。
- STSクライアントで使用するカスタムトークンタイプを作成します。 「カスタムトークンタイプの管理」 を参照してください。
このタスクについて
トークン交換用にSTSクライアントを設定します。 クライアントは、トークン拡張グラントタイプメカニズムを使用して、認証サーバーのトークンエンドポイントに対してセキュリティトークンを要求します。 Identity Providerとしてを使用して Verify 構築された外部アプリケーションは、 OAuth 2.0 のアクセストークンやその他の認証方法を用いて認証されたREST APIリクエストを受け付けることができます。 詳細については、 https://www.rfc-editor.org/rfc/rfc8693.html をご覧ください。
手順
- 「アプリケーション 」>「 STSクライアント」 を選択します。
- 「STSクライアントの追加」 を選択します。
- 概要を記載してください。
- 任意: クライアントIDを入力してください。クライアントIDを指定しない場合、セットアップ完了時にIDが作成されます。
- STSクライアントに一意の名前を指定してください。
- [有効] チェックボックスにチェックを入れたままにしてください。このSTSクライアントを有効または無効にすることができます。
- アクセストークンをSSOセッションと交換できるようにする。 「デフォルト」 が選択されている場合、SSOセッションにおいてアクセストークンの交換が可能かどうかは、OIDCアプリケーションの基本設定によって決定されます。
- 任意: クライアントIDを入力してください。
- 「次へ」 を選択します。
- クライアント認証方式を選択してください。この設定により、クライアントの認証方法が決定されます。
- 「デフォルト」、「クライアントシークレット(Basic)」、「クライアントシークレット(POST)」の各メソッドでは、設定完了時にクライアントシークレットが自動的に生成されます。
- 「秘密鍵JWT」方式を使用する場合は、クライアントアサーションの署名アルゴリズムと、許可される署名検証キーを選択する必要があります。 また、「 クライアントアサーションの検証」JTI を選択して、クライアントアサーションを検証することもできます。
- 「 TLS 」方式では、クライアント認証属性「 TLS 」と、その値「 TLS 」を指定する必要があります。
- 既存のSTSクライアントを編集する場合は、以下のクライアントシークレットのオプションを使用できます:
- クライアント秘密鍵を表示するには、
を選択します。
- クライアント秘密鍵を非表示にするには、
を選択します。
- を選択
すると、クライアントIDまたはシークレットがクリップボードにコピーされます。
- [選択]
をクリックして、回転されたクライアントシークレットを表示します。
- リストから1つ以上のローテーション済みのクライアントシークレットを選択し、 「削除」 をクリックして削除してください。
- 新規クライアント・シークレットを生成するには、
を選択します。 クライアント秘密鍵が漏えいしたと思われる場合は、このオプションを使用します。 クライアント秘密鍵を再生成した場合は、アプリケーションのすべての OAuth クライアントにあるクライアント秘密鍵を更新する必要があります。- 「 現在のシークレットを保持する 」のチェックボックスを選択すると、現在のクライアントシークレットがローテーション対象のクライアントシークレットのリストに追加されます。
- 「 現在のシークレットを保持する」 チェックボックスがオンになっている場合は、クライアントシークレットの説明と有効期限(ブラウザのローカル時間)を選択してください。 有効期限が選択されていない場合、 アプリケーション設定で設定されたテナントの「ローテーションされたシークレットの有効期間」が適用されます。
- 更新されたクライアントシークレットはハッシュ化されており、もはや平文で復元することはできませんが、指定された有効期限までは引き続き使用可能です。
- 確認後、クライアントシークレットは直ちに更新されます。 新しいクライアントシークレットが画面に表示されます。
- クライアント秘密鍵を表示するには、
default注: デフォルトのクライアント認証方式は です。デフォルトのままにした場合、クライアント秘密鍵 Basic と POST の両方が許可されます。 このクライアントがパブリック・クライアントの場合、クライアント・シークレットの基本と POST は許可されません。 証明書利用者がサポートする場合、構成として秘密鍵JWTまたは相互TLSを使用します。 相互TLSクライアント認証については、Open ID Connect相互TLSクライアント認証と証明書にバインドされたアクセストークンを参照してください。
- 「次へ」 を選択します。
- サブジェクトトークンおよびリクエストトークンで許可されるトークンタイプを選択してください。
- オプション: アクタートークンで許可するトークンタイプを選択します。
クライアントで使用するカスタムトークンタイプを作成するには、 「カスタムトークンタイプの管理」 を参照してください。表 1. トークン交換 フィールド 説明 サブジェクト・トークン 対象トークンのトークンタイプ。これは、トークンの発行を依頼されている当事者の身元を表すものです。 アクター・トークン アクター・トークンのトークン型。これは、発行されたトークンのアクセス権が委譲される相手の身元を表す。 要求されたトークン トークン交換の一環として生成をリクエストできるトークンの種類。
トランザクショントークン :この1回限りのセキュリティトークンには、特定のトランザクション、アクション、リソース、またはリクエストの詳細に関するコンテキスト情報が含まれており、その特定の操作に対してきめ細かな権限管理を実現します。 トークンを選択すると、「 トランザクションコンテキスト 」タイルが表示され、そこからCELx式を使用してコンテキストを設定できます。 詳細については、「トランザクショントークン」 を参照してください。注: トランザクショントークンはリクエスト可能な機能です。 VDEV-186514: 「AIエージェントのセキュリティ確保」。 この機能をご希望の場合は、 IBM の営業担当者、または IBM の担当者までご連絡いただき、本機能の有効化をご希望であることをお伝えください。 権限をお持ちの場合は、機能番号を明記してサポートチケットを作成することも可能です。 IBM Verify 無料体験版では、サポートチケットを作成することはできません。クライアント・グループ OpenID Connectのクライアントグループ一覧。 このクライアントによって生成されたトークンは、同一グループ内でのトークン交換において、対象トークンとして使用できます。 このリストが空の場合、どのクライアントも、このクライアントから生成されたトークンをトークン交換のサブジェクト・トークンとして使用できます。 アクタートークンが必要です トークン交換リクエストの一部として、アクター・トークンを必須とする。 このアクションにより、委任シナリオが適用され、なりすましシナリオは許可されません。 トランザクションのコンテキスト 「 トランザクションコンテキスト 」フィールドは、「要求されたトークン」 が 「トランザクショントークン」 に設定されている場合にのみ表示されます。 このフィールドは、他のトークンタイプには適用されません。 詳細については、「トランザクショントークン」 を参照してください。 - 「次へ」 を選択します。
- 必要なトークン設定を選択または指定してください。
表 2. トークンの設定要求 フィールド 説明 アクセス・トークンの形式 アクセス・トークンのフォーマットを指定します。 以下のオプションを使用できます。 デフォルト
JWT
アクセス トークンの有効期限(秒) アクセス・トークンの有効期限が切れるまでの時間の長さを秒単位で設定します。
アクセス・トークンの有効期限を設定して、クライアント・アプリケーションが暗号漏えいしたときに、盗まれたトークンを使用して攻撃者がリソースにアクセスできる時間を制限します。
指定できるのは正の整数のみです。
デフォルト値は 3600 秒です。 許可される最小値は 1 秒で、最大値は 2147483647 秒です。
署名アルゴリズム IDトークンの署名に使用されるVerify アルゴリズム。 アルゴリズムは、依拠当事者が登録したものと一致していなければならないVerify。 以下のハッシュ・アルゴリズムから選択して、署名を検証します。 - RS256
- RS384
- RS512
- PS256
- PS384
- PS512
- ES256
- ES384
- ES512
注:- ES256 署名アルゴリズムが選択されている場合、証明書は P-256 を指定した ECDSA でなければなりません。
- ES384 署名アルゴリズムが選択されている場合、証明書は P-384 を指定した ECDSA でなければなりません。
- ES512 署名アルゴリズムが選択されている場合、証明書は P-521を指定した ECDSA でなければなりません。
署名証明書 IDトークンの署名に使用される証明書を選択してください。 「デフォルトの選択」とは、「 セキュリティ 」>「 証明書」 で設定したデフォルトの設定を指します。
.暗号化アルゴリズム コンテンツ暗号化キー(CEK)の暗号化または値の決定に使用される暗号化アルゴリズム。 以下のアルゴリズムがサポートされています。 - なし
- RSA-OAEP
- RSA-OAEP-256
コンテンツ・アルゴリズム 平文に対して認証付き暗号化を行うために使用されるコンテンツ暗号化アルゴリズム。これにより、暗号文と認証タグが生成される。 以下のアルゴリズムがサポートされています。 - なし
- A128GCM
- A192GCM
- A256GCM
暗号化証明書 値を入力するか、テナントにすでにアップロード済みの署名者証明書のリストから選択してください。 注: 署名者の証明書をアップロードする方法については、 「証明書の管理」 を参照してください。JWKS URI トークン発行者または依存先が、JSON Web Keys Set(JWKS)形式で公開鍵を公開しているURI。 この URI は、JWT 署名の検証または暗号化に使用されます。 システムは、到達不能または応答しない JWKS URI を拒否できます。 JWKSサイズが大きすぎる場合、システムはJWKS URIを拒否できます。 トークン発行者がJWKS URIを公開していない場合、 X509 証明書の形式で公開鍵をシステムに追加することができます。 「 証明書の管理」を参照してください。 パブリック証明書に関連付けられている「フレンドリー名」は、JWT の鍵 ID (kid) ヘッダーの値です。 例えば、以下のとおりです。 https://{yourDomain}/.well-known/jwks.json - 「次へ」 を選択してください。
- 「所有権証明」設定のチェックボックスを選択してください。
表 3. 所有権証明の設定 フィールド 説明 証明書にバインドされたアクセス・トークン 生成されたトークンが証明書に紐付けられているかどうかを示します。 証明書ベースのアクセストークンに関する詳細については、 「OpenID Connectの相互 TLS クライアント認証および証明書ベースのアクセストークン」 を参照してください。 DPoP-bound のアクセストークンを強制する。 トークンリクエストにおいて、 DPoP ヘッダーが必要かどうかを示します。 DPoP JWT の JTI を検証する DPoP のJWTに含まれるJTIが、シングルユースとして検証済みであるかどうかを示します。 DPoP JWT の署名アルゴリズム DPoP のJWTに対する期待される署名アルゴリズム。
以下のアルゴリズムから選択してください。
- RS256
- RS384
- RS512
- PS256
- PS384
- PS512
- ES256
- ES384
- ES512
- 「次へ」 を選択します。
- 各エンドポイントの要求と応答のマッピングを構成します。
- 「次へ」 を選択します。
- カスタム・スコープを制限します。OIDC / OAuth クライアントは、サポートされている OIDC / OAuth グラントフローにおいて、カスタムスコープをリクエストすることができます。 デフォルトの設定である「カスタム・スコープの制限」が有効になっている場合、フローの終わりにクライアントに付与されるスコープは、このセクションで指定されるスコープに制限されます。 「カスタムスコープを制限」 が利用できない場合、リクエストされたカスタムスコープはすべて、フローが完了した時点で許可されます。注: 標準スコープ openid, profile, email, phone, および address は制限できません。
- 「 カスタムスコープを制限する」 チェックボックスがオンになっていることを確認してください。
- 付与するカスタム・スコープの名前と説明を入力します。スコープ名は、依拠当事者/クライアントによって要求される OAuth2/OIDC スコープを指します。 説明は、スコープの分かりやすい説明です。もう 1 組のスコープ・フィールドが表示されます。
- 付与するカスタム・スコープごとに、前のステップを繰り返します。
- 認証の詳細を制限するOIDC/ OAuth クライアントは、サポートされているOIDC/ OAuth グラントフローにおいて、認証の詳細情報を要求することができます。 「承認詳細の制限」 が有効になっている場合、フローの終了時に付与される承認詳細は、このセクションで指定された承認詳細に限定されます。 「承認の詳細を制限する」 が無効になっている場合、フローが完了すると、要求された承認の詳細はいずれも承認されます。
- 「権限の制限」 のチェックボックスがオンになっていることを確認してください。
- 「不明な認証情報を無視する 」が有効になっているか確認してください。
- 付与したい承認詳細タイプの名前を入力するか、選択してください。 認証詳細のJSONに含まれるプロパティに基づいてリクエストをフィルタリングするための、追加のカスタムルールを編集および定義できます。 たとえば、認証詳細タイプが
resource_accessであり、そこに プロパティlocationが含まれている場合、リクエストは場所が日本である場合にのみ許可されます。requestContext.ad.location == 'Japan'その場合、ルールは次のようになります:。 - 「追加」 をクリックし、権限を付与したい各権限詳細タイプについて、前の手順を繰り返します。
- アクセストークンに付与したいユーザー権限と非ユーザー権限を選択してください。APIへのアクセスは制限されているのがデフォルトの設定です。 API アクセス権限を付与するには、以下の手順を実行してください。 「API アクセスを制限する (Restrict API access)」チェック・ボックスをクリアすると、デフォルト資格のセットがトークンに付与されます。 「デフォルトのサインオントークン API の権限」 を参照してください。
- 「セットアップを完了」 を選択します。