翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クライアント認証方法
クライアント認証方法は、OAuth クライアントがアクセストークンをリクエストするときに認可サーバーのトークンエンドポイントで認証する方法を制御します。
プロバイダー固有の認証情報プロバイダーの場合、AgentCore Identity は各ベンダーの要件に基づいてクライアント認証方法を管理するため、追加の設定は必要ありません。
クライアントシークレットではなく IAM 署名 JWT アサーションによる認証や、組み込みベンダーとは異なる要件を持つ認可サーバーをターゲットにするなど、よりきめ細かな制御を必要とするユースケースでは、カスタムプロバイダーを使用します。これにより、以下のサポートされている方法から選択できます。
サポートされているクライアント認証方法
AgentCore Identity は、クライアント認証メソッドで次の値をサポートしています。
-
CLIENT_SECRET_BASIC(デフォルト) — 認可サーバーからクライアントシークレット値を受け取ったクライアントは、HTTP Basic 認証スキームを使用して OAuth 2.0 (RFC 6749) のセクション 2.3.1 に従って認可サーバーで認証します。クライアント ID とクライアントシークレットの両方が必要です。 -
CLIENT_SECRET_POST— 認可サーバーからクライアントシークレット値を受け取ったクライアントは、リクエスト本文にクライアント認証情報を含めることで、OAuth 2.0 (RFC 6749) のセクション 2.3.1 に従って認可サーバーと認証します。クライアント ID とクライアントシークレットの両方が必要です。 -
AWS_IAM_ID_TOKEN_JWT— RFC 7523 セクション 2 AWS .2 に従って、エージェントの実行ロール (sts:GetWebIdentityToken を介して取得) の IAM 署名 JWT アサーションをクライアントアサーションとして送信することで、認可サーバーのトークンエンドポイントに認証します。認可サーバーは、このメカニズムをサポートし、発行者として IAM AWS を信頼する必要があります。この方法を選択すると、クライアントシークレットは必須ではなく、クライアント ID はユーザー委任アクセスフロー (ユーザー委任アクセス (OAuth 2.0 認可コード付与)) にのみ必要です。をクライアント認証方法AWS_IAM_ID_TOKEN_JWTとして使用する場合の前提条件は次のとおりです。-
アウトバウンドウェブ ID フェデレーションは、アカウントで有効にする必要があります。iam:EnableOutboundWebIdentityFederation で有効にします。
-
呼び出し元の IAM ID AWS には、sts:GetWebIdentityToken を呼び出すアクセス許可が必要です。
-
-
PRIVATE_KEY_JWT有効期間の短い JWT クライアントアサーションを送信して、認可サーバーのトークンエンドポイントに認証します。AgentCore Identity は、RFC 7523 セクション 2.2 に従ってkms:Sign、 を介してカスタマーマネージド AWS KMS 非対称キーを使用してアサーションを構築して署名します。プライベートキーが KMS から出ることはありません。認可サーバーは、登録したパブリックキーに対してアサーションを検証します。この方法を選択すると、クライアントシークレットは必要ありません。すべてのフローにクライアント ID が必要です。をクライアント認証方法PRIVATE_KEY_JWTとして使用するには、次の前提条件を満たします。-
キーの使用方法が の KMS AWS の非対称署名キー。適切なキーポリシーと
SIGN_VERIFY、選択した署名アルゴリズムと互換性のあるキー仕様があります (algorithm-to-key-spec表については、「プライベートキー JWT」を参照してください)。 -
AgentCore Identity 実行ロール (または呼び出し ID) には、KMS キーに対する
kms:DescribeKeyおよび アクセスkms:Sign許可が必要です。 -
ID プロバイダーの認可サーバーは、プライベートキー JWT クライアント認証をサポートし、対応するパブリックキーを認可サーバーに登録する必要があります。
-
クライアント認証方法を設定する方法
CustomOauth2 のクライアント認証方法の設定
AWS コンソールでカスタムプロバイダーのクライアント認証方法を設定するには、「カスタムプロバイダーを使用して OAuth クライアントを追加する」を参照してください。CLI を使用して設定することもできます。
CLI の例: クライアント認証方法CLIENT_SECRET_BASICとして を使用する
aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-client-basic", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientSecret": "your-client-secret", "clientAuthenticationMethod": "CLIENT_SECRET_BASIC" } } }'
CLI の例: クライアント認証方法AWS_IAM_ID_TOKEN_JWTとして を使用する
aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-iam-jwt", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientAuthenticationMethod": "AWS_IAM_ID_TOKEN_JWT" } } }'
CLI の例: クライアント認証方法PRIVATE_KEY_JWTとして を使用する
aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-private-key-jwt", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://your-idp.example.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientAuthenticationMethod": "PRIVATE_KEY_JWT", "privateKeyJwtConfig": { "privateKeySource": { "kmsKeySource": { "kmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/your-key-id" } }, "signingAlgorithm": "RS256" } } } }'
KMS キー設定、クロスアカウントサポート、署名アルゴリズムオプションなど、完全な設定リファレンスの詳細については、「プライベートキー JWT」を参照してください。
注意
tokenEndpointAuthMethods このフィールドは、クライアント認証方法には推奨されませんが、CLI および SDK での下位互換性のために維持されます。同じリクエストで両方を指定すると、検証エラーが発生します。