AWS bedrock-agentcore high security documentation change
Summary
Updated Slack OAuth2 setup procedure to use unique callback URLs per credential provider instead of a fixed URL. Added security note about session binding protection and restructured into three steps.
Security assessment
The change explicitly addresses security vulnerabilities (cross-provider replay and CSRF attacks) by implementing unique callback URLs with session binding. The documentation now explains how this security mechanism protects authorization-code exchanges.
Diff
diff --git a/bedrock-agentcore/latest/devguide/identity-idp-slack.md b/bedrock-agentcore/latest/devguide/identity-idp-slack.md index b3db21d98..af2029955 100644 --- a//bedrock-agentcore/latest/devguide/identity-idp-slack.md +++ b//bedrock-agentcore/latest/devguide/identity-idp-slack.md @@ -15 +15 @@ Slack can be configured as an AgentCore Identity credential provider for outboun -**Step 1** +###### Note @@ -17 +17,5 @@ Slack can be configured as an AgentCore Identity credential provider for outboun -Use the following procedure to set up a Slack 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 Slack OAuth2 client first, then return to the Slack developer console to register the callback URL once AgentCore Identity has issued it. + +**Step 1: Create the Slack OAuth2 client** + +Use the following procedure to set up a Slack 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. @@ -23,3 +27 @@ Use the following procedure to set up a Slack OAuth2 application and obtain the - 2. Choose the **OAuth & Permissions** section and set the following as the redirect URL for the application: - - * `https://bedrock-agentcore.region.amazonaws.com/identities/oauth2/callback` + 2. Open the **OAuth & Permissions** section. Leave the Redirect URLs list empty for now — you will add the unique callback URL in Step 3. @@ -34 +36 @@ For more details, refer to Slack’s documentation [Sign in with Slack](https:// -**Step 2** +**Step 2: Create the AgentCore Identity credential provider** @@ -49,0 +52,15 @@ To configure the outbound Slack 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 Slack** + +Return to the Slack developer console and add the unique callback URL to your OAuth2 application’s redirect URI list. + + 1. Sign in to the Slack 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. + + + +