View a markdown version of this page

Métodos de autenticação do cliente - Amazon Bedrock AgentCore

Métodos de autenticação do cliente

O método de autenticação do cliente controla como o cliente OAuth se autentica com o endpoint do token do servidor de autorização ao solicitar tokens de acesso.

Para provedores de credenciais específicos do provedor, o AgentCore Identity gerencia o método de autenticação do cliente para você com base nos requisitos de cada fornecedor, portanto, nenhuma configuração adicional é necessária.

Para casos de uso que exigem um controle mais refinado, como a autenticação com uma declaração IAM-signed JWT em vez de uma chave secreta do cliente ou a segmentação de um servidor de autorização cujos requisitos sejam diferentes dos de um fornecedor incorporado, use o provedor personalizado, que permite escolher entre os métodos compatíveis abaixo.

Métodos de autenticação de cliente compatíveis

AgentCore O Identity suporta os seguintes valores para o método de autenticação do cliente.

  1. CLIENT_SECRET_BASIC(padrão) — Clientes que receberam um valor secreto do cliente do servidor de autorização se autenticam com o servidor de autorização de acordo com a Seção 2.3.1 do OAuth 2.0 (RFC 6749) usando o esquema de autenticação HTTP Basic. Tanto o ID do cliente quanto o segredo do cliente são obrigatórios.

  2. CLIENT_SECRET_POST— Clientes que receberam um valor secreto do cliente do servidor de autorização se autenticam no servidor de autorização de acordo com a Seção 2.3.1 do OAuth 2.0 (RFC 6749), incluindo as credenciais do cliente no corpo da solicitação. Tanto o ID do cliente quanto o segredo do cliente são obrigatórios.

  3. AWS_IAM_ID_TOKEN_JWT— Autentique-se no endpoint do token do servidor de autorização enviando uma declaração AWS IAM-signed JWT para a função de execução do agente (obtida via sts: GetWebIdentityToken) como declaração do cliente, de acordo com a RFC 7523, Seção 2.2. O servidor de autorização deve oferecer suporte a esse mecanismo e confiar no AWS IAM como emissor. Quando esse método é selecionado, o segredo do cliente não é necessário e o ID do cliente só é necessário para o fluxo de acesso delegado pelo usuário (User-delegated acesso (concessão do código de autorização do OAuth 2.0)). Para usar AWS_IAM_ID_TOKEN_JWT como método de autenticação do cliente, aqui estão os pré-requisitos:

    1. A federação de identidade da web de saída deve estar ativada em sua conta. Ative-o com iam: EnableOutboundWebIdentityFederation.

    2. A identidade AWS do IAM chamador deve ter permissão para chamar sts: GetWebIdentityToken.

Como configurar o método de autenticação do cliente

Configurando o método de autenticação do cliente para 2 CustomOauth

Para configurar o método de autenticação do cliente para o provedor personalizado no AWS console, consulte Adicionar cliente OAuth usando o provedor personalizado. Você também pode configurá-lo usando a CLI.

Exemplo de CLI: usando CLIENT_SECRET_BASIC como método de autenticação do cliente

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" } } }'

Exemplo de CLI: usando AWS_IAM_ID_TOKEN_JWT como método de autenticação do cliente

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" } } }'

Aviso

O tokenEndpointAuthMethodscampo não é recomendado em favor do método de autenticação do cliente, mas é mantido para compatibilidade com versões anteriores na CLI e no SDK. Fornecer os dois na mesma solicitação resultará em um erro de validação.