クライアント認証方法
クライアント認証方法は、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 を呼び出すアクセス許可が必要です。
-
クライアント認証方法を設定する方法
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" } } }'
注意
tokenEndpointAuthMethods このフィールドは、クライアント認証方法には推奨されませんが、CLI および SDK での下位互換性のために維持されます。同じリクエストで両方を指定すると、検証エラーが発生します。