AWS bedrock-agentcore high security documentation change
Summary
Added security note about unique OAuth2 callback URLs and restructured setup steps. Changed from static callback URL to provider-specific dynamically generated URL.
Security assessment
The change explicitly addresses security vulnerabilities by implementing unique callback URLs per provider to prevent cross-provider replay and CSRF attacks in OAuth2 authorization flows. The documentation now explains the security mechanisms protecting against these specific threats.
Diff
diff --git a/bedrock-agentcore/latest/devguide/identity-idp-google.md b/bedrock-agentcore/latest/devguide/identity-idp-google.md index 10203e2b8..f464c84d9 100644 --- a//bedrock-agentcore/latest/devguide/identity-idp-google.md +++ b//bedrock-agentcore/latest/devguide/identity-idp-google.md @@ -15 +15 @@ Google can be configured as an AgentCore Identity credential provider for outbou -**Step 1** +###### Note @@ -17 +17,5 @@ Google can be configured as an AgentCore Identity credential provider for outbou -Use the following procedure to set up a Google OAuth2 application and obtain the necessary client credentials for AgentCore Identity. +AgentCore Identity issues a unique OAuth2 callback URL for each credential provider you create. The unique callback URL enables session binding, which protects the OAuth2 authorization-code exchange against cross-provider replay and CSRF-style attacks by ensuring an authorization response can only be redeemed against the specific credential provider that initiated it. Because the URL is unique per provider, you won’t know it until **after** you call `CreateOauth2CredentialProvider`. Create your Google OAuth2 client first, then return to the Google developer console to register the callback URL once AgentCore Identity has issued it. + +**Step 1: Create the Google OAuth2 client** + +Use the following procedure to set up a Google OAuth2 application and obtain the necessary client credentials for AgentCore Identity. You will register the redirect URI in Step 3, after AgentCore Identity issues the unique callback URL. @@ -41,5 +45 @@ Use the following procedure to set up a Google OAuth2 application and obtain the - 11. Choose an **Application type** and give your client a **Name**. - - 12. Under **Authorized redirect URIs** , choose **ADD URI** . Enter the following: - - * `https://bedrock-agentcore.region.amazonaws.com/identities/oauth2/callback` + 11. Choose an **Application type** and give your client a **Name**. Leave **Authorized redirect URIs** empty for now — you will add the unique callback URL in Step 3. @@ -47 +47 @@ Use the following procedure to set up a Google OAuth2 application and obtain the - 13. Choose **CREATE**. + 12. Choose **CREATE**. @@ -49 +49 @@ Use the following procedure to set up a Google OAuth2 application and obtain the - 14. Securely store the values that Google displays under **Your client ID** and **Your client secret** . Provide these values to AgentCore Identity when you add a Google credential provider. + 13. Securely store the values that Google displays under **Your client ID** and **Your client secret** . Provide these values to AgentCore Identity when you add a Google credential provider. @@ -54 +54 @@ Use the following procedure to set up a Google OAuth2 application and obtain the -**Step 2** +**Step 2: Create the AgentCore Identity credential provider** @@ -69,0 +70,15 @@ To configure the outbound Google resource provider, use the following: +The [CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html) response includes a `callbackUrl` field. This URL is unique to this credential provider and looks like: `https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. Save this value for the next step. + +**Step 3: Register the unique callback URL with Google** + +Return to the Google developer console and add the unique callback URL to your OAuth2 application’s redirect URI list. + + 1. Sign in to the Google developer console and open the OAuth2 application you created in Step 1. + + 2. Add the `callbackUrl` value returned by `CreateOauth2CredentialProvider` to the application’s redirect URI configuration. + + 3. Save your changes. + + + +