用戶端身分驗證方法
用戶端身分驗證方法控制 OAuth 用戶端在請求存取權杖時,如何使用授權伺服器的權杖端點進行身分驗證。
對於提供者特定的憑證提供者,AgentCore Identity 會根據每個廠商的需求為您管理用戶端身分驗證方法,因此不需要額外的組態。
對於需要更精細控制的使用案例,例如使用 IAM 簽署的 JWT 聲明而非用戶端秘密進行身分驗證,或鎖定要求與內建廠商不同的授權伺服器,請使用自訂提供者,這可讓您從以下支援的方法中進行選擇。
支援的用戶端身分驗證方法
AgentCore Identity 支援用戶端身分驗證方法的下列值。
-
CLIENT_SECRET_BASIC(預設) — 已使用 HTTP 基本身分驗證機制,根據 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 AWS 第 2.2 節,傳送代理執行角色的 IAM 簽署 JWT 聲明 (透過 sts:GetWebIdentityToken 取得) 做為用戶端聲明,以驗證授權伺服器的字符端點。授權伺服器必須支援此機制,並以發行者身分信任 AWS IAM。選取此方法時,不需要用戶端秘密,而且只有使用者委派存取流程需要用戶端 ID (使用者委派存取 (OAuth 2.0 授權碼授予))。若要使用AWS_IAM_ID_TOKEN_JWT做為用戶端身分驗證方法,以下是先決條件:-
您必須在您的帳戶上啟用傳出 Web 聯合身分。使用 iam:EnableOutboundWebIdentityFederation 啟用它。
-
呼叫 AWS IAM 身分必須具有呼叫 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" } } }'
Notice (注意)
不建議使用 tokenEndpointAuthMethods 欄位來支援用戶端身分驗證方法,但會維護 CLI 和 SDK 中的回溯相容性。在相同的請求中提供兩者將導致驗證錯誤。