Gerenciamento centralizado de acesso a servidores MCP
À medida que as organizações expandem suas implementações de agentes de IA, o número de servidores MCP (Model Context Protocol) que cada equipe utiliza cresce rapidamente. O Amazon Bedrock AgentCore Gateway oferece uma camada centralizada para gerenciar como os agentes de IA conectam-se a ferramentas e servidores MCP em toda a organização. Essa solução consolida autenticação, observabilidade e imposição de políticas em um único endpoint, eliminando a necessidade de configurar e proteger cada conexão de servidor MCP individualmente.
Em vez de configurar cada servidor MCP separadamente por IDE (ambiente de desenvolvimento), os times passam a apontar para uma única URL do Gateway, proporcionando acesso consistente ao conjunto completo de ferramentas MCP disponíveis. Esse padrão está acelerando conforme as organizações adotam servidores MCP de produção de terceiros, como os fornecidos pela AWS, GitHub, Salesforce e Databricks.
Desafios na autenticação em escala
Muitos servidores MCP empresariais exigem autenticação OAuth 2.0 (Protocolo de Autorização 2.0), onde o agente precisa autenticar-se em nome de um usuário antes de invocar ferramentas. Alguns desses servidores são protegidos pelo provedor de identidade principal através de federação, enquanto outros são protegidos por seus próprios servidores de autorização.
À medida que o número de servidores MCP por organização aumenta, gerenciar conexões, autenticação e roteamento no nível do IDE torna-se insustentável. O AgentCore Gateway centraliza essa complexidade, oferecendo um único plano de controle para acesso MCP enquanto proporciona aos desenvolvedores uma experiência sem atritos.
Suporte a fluxo de código de autorização
A AWS agora oferece suporte ao fluxo de código de autorização OAuth 2.0 através do Amazon Bedrock AgentCore Identity. Com isso, seus agentes podem acessar com segurança servidores MCP protegidos sem incorporar credenciais no código da aplicação ou gerenciar manualmente o ciclo de vida dos tokens.
A plataforma disponibiliza dois métodos para criar e gerenciar acesso a servidores MCP protegidos por OAuth:
Sincronização implícita durante a criação do alvo MCP
Neste método, o usuário administrador completa o fluxo de código de autorização durante operações CreateGatewayTarget, UpdateGatewayTarget ou SynchronizeGatewayTargets. Isso permite que o AgentCore Gateway descubra e cache as ferramentas do servidor MCP antecipadamente.
Fornecimento de esquema antecipado
Nesta abordagem, os usuários administradores fornecem o esquema das ferramentas diretamente durante operações CreateGatewayTarget ou UpdateGatewayTarget, em vez de o AgentCore Gateway buscá-los dinamicamente do servidor MCP. O gateway analisa o esquema fornecido e faz cache das definições de ferramentas.
Esta é a abordagem recomendada quando a intervenção humana não é possível durante operações de criação ou atualização. Além disso, oferece controle granular sobre quais ferramentas do servidor MCP serão expostas. É importante notar que, com este método, a operação SynchronizeGatewayTargets não é suportada.
Você pode alternar um alvo entre os dois métodos simplesmente atualizando a configuração do alvo, proporcionando flexibilidade conforme suas necessidades evoluem.
Vinculação de sessão por URL
Um componente crítico de segurança é a vinculação de sessão por URL, que verifica se o usuário que iniciou a solicitação de autorização OAuth é o mesmo que concedeu consentimento. Quando o AgentCore Identity gera uma URL de autorização, também retorna uma session-URI. Após o usuário concluir o consentimento, o navegador redireciona para uma URL de callback com a session-URI.
A aplicação é então responsável por chamar a API CompleteResourceTokenAuth, apresentando tanto a identidade do usuário quanto a session-URI. O AgentCore Identity valida que o usuário que iniciou o fluxo é o mesmo que o completou antes de trocar o código de autorização por um token de acesso. Isso ajuda a evitar cenários onde um usuário compartilha acidentalmente a URL de autorização e outra pessoa completa o consentimento, concedendo tokens de acesso para a parte errada.
Para segurança adicional, a URL de autorização e a session URI são válidas apenas por 10 minutos, limitando ainda mais a janela para uso indevido.
Conceitos principais
Usuário do AgentCore Gateway: O usuário final que consome as ferramentas no Amazon Bedrock AgentCore Gateway com clientes MCP. Esses usuários não gerenciam o próprio AgentCore Gateway — simplesmente usam a URL única do gateway para acessar as ferramentas disponíveis para eles.
Usuário administrador: O usuário que gerencia e mantém o Amazon Bedrock AgentCore Gateway. É responsável por conectar servidores MCP, ferramentas ou APIs ao gateway, permitindo que usuários do gateway as consumam.
Servidor MCP: Neste contexto, assume-se que o servidor MCP é protegido por um fluxo de código de autorização OAuth 2.0, que requer interação do usuário para completar a autenticação. Isso é diferente de métodos de autenticação máquina-para-máquina, como Client Credentials ou Token Exchange, que não requerem intervenção do usuário.
Implementação prática com GitHub
Para demonstrar a integração, a AWS fornece exemplos de código mostrando como conectar um servidor GitHub MCP ao Amazon Bedrock AgentCore Gateway. O processo envolve ambos os métodos — sincronização implícita durante a criação do alvo e fornecimento de esquema antecipado.
Configuração inicial com GitHub
Antes de começar, é necessário configurar uma aplicação OAuth no GitHub. Acesse https://github.com/settings/apps para criar uma nova aplicação GitHub, fornecendo detalhes como nome da aplicação, URL da homepage e URL de callback de autorização.
Nas configurações avançadas, recomenda-se desativar a expiração automática de tokens, desativar a autorização de usuário durante a instalação e desativar o Device Flow, seguindo as melhores práticas de segurança da sua organização.
Preparação do ambiente
Você precisará de permissões IAM (Gestão de Identidade e Acesso) apropriadas para executar o código. O repositório contém exemplos práticos — comece clonando o repositório GitHub e abrindo o arquivo github-mcp-server.ipynb.
Configuração do provedor de credenciais
Configure o provedor de credenciais do Agentcore Identity no console do Amazon Bedrock AgentCore. Crie um cliente OAuth, fornecendo um nome e selecionando o provedor GitHub pré-incluído. Insira o ID do cliente e o segredo da aplicação GitHub.
Copie a URL de callback do cliente OAuth do AgentCore Identity e retorne à aplicação OAuth do GitHub que criou para atualizar a URL de callback de autorização com o valor gerado.
Fluxo de sincronização implícita
No método de sincronização implícita, o usuário administrador completa o fluxo de autorização durante a criação do alvo. Certifique-se de que a função de execução do AgentCore Gateway possui permissões para GetWorkloadAccessTokenForUserId e CompleteResourceTokenAuth.
O processo segue esta sequência: o administrador chama CreateGatewayTarget, fornecendo o endpoint do servidor MCP, o provedor de credenciais do AgentCore Identity e a URL de retorno. O AgentCore Gateway solicita um token de acesso de workload ao provedor de credenciais, passando a identidade do gateway e um ID de usuário. Com esse token, o gateway solicita um token de acesso OAuth 2.0, que retorna uma URL de autorização e uma session-URI.
Neste ponto, o alvo entra em status “Requer autorização”. O administrador abre a URL de autorização em seu navegador, faz login e concede as permissões solicitadas. Após o consentimento, o servidor OAuth 2.0 envia um código de autorização ao callback registrado do provedor de credenciais.
O provedor redireciona o navegador do administrador para a URL de retorno, com a session-URI. A aplicação então chama CompleteResourceTokenAuth, apresentando o ID do usuário e a session-URI. O provedor de credenciais valida que o mesmo usuário que iniciou o fluxo completou o consentimento, prevenindo roubo de token.
Após validação bem-sucedida, o provedor troca o código de autorização pelo token de acesso OAuth 2.0. Esse token é usado para listar as ferramentas no alvo do servidor MCP; as definições de ferramentas retornadas são armazenadas em cache no AgentCore Gateway.
Método de esquema antecipado
Esta é a abordagem recomendada quando a intervenção humana não é possível durante operações de criação ou atualização. Durante a seleção de criação de alvo, você seleciona a opção de usar uma lista de ferramentas pré-definidas e fornece as definições de ferramentas do GitHub.
O alvo entra imediatamente em status “Pronto”, com status de autorização “Nenhuma autorização necessária”. Isso oferece flexibilidade total sobre quais ferramentas expor e elimina a necessidade de interação do administrador durante a configuração.
Experiência do usuário do gateway
Após a criação bem-sucedida do alvo, seja através de sincronização implícita ou esquema antecipado, os usuários do AgentCore Gateway podem descobrir e invocar ferramentas usando o protocolo MCP.
Quando um usuário do gateway envia uma solicitação de lista de ferramentas com seu token de autorização de entrada, o AgentCore Gateway retorna as definições de ferramentas em cache imediatamente, sem necessidade de nova autenticação no servidor MCP.
Quando o usuário envia uma solicitação para invocar uma ferramenta, o AgentCore Gateway desencadeia o fluxo de autorização OAuth para aquele alvo específico de servidor MCP. O gateway solicita um token de acesso de workload, e então usa esse token para solicitar um token de acesso OAuth 2.0 ao provedor de credenciais.
Se nenhum token válido existir ainda para este usuário, o provedor retorna uma URL de autorização e uma session-URI. O gateway passa esses valores para o usuário, que abre a URL em seu navegador, faz login e concede permissões. Após consentimento, o servidor OAuth 2.0 envia um código de autorização ao callback do provedor de credenciais.
O provedor redireciona o navegador do usuário para a URL de retorno com a session-URI. A aplicação do usuário chama CompleteResourceTokenAuth com o JWT do usuário e a session-URI. O provedor valida que o mesmo usuário completou o consentimento, então troca o código de autorização por um token de acesso OAuth 2.0.
Este token é armazenado em cache no Token Vault sob a identidade do workload e a identidade do usuário. Na próxima invocação de ferramenta, o AgentCore Gateway recupera o token em cache e o usa para chamar o servidor MCP, proporcionando uma experiência fluida após a autenticação inicial.
Explorando exemplos e casos de uso
Embora este exemplo concentre-se no servidor GitHub MCP, o repositório de código inclui exemplos de integração para outros servidores MCP populares de terceiros e um guia para hospedar seu próprio servidor MCP com suporte a fluxo de código de autorização no AgentCore Runtime.
A AWS incentiva explorar esses exemplos e adaptá-los à paisagem de servidor MCP de sua organização, facilitando a adoção de múltiplas ferramentas MCP de forma segura e centralizada.
Recursos adicionais
Para aprofundar seu conhecimento, consulte a documentação oficial: Apresentando o Amazon Bedrock AgentCore Gateway: transformando o desenvolvimento de ferramentas para agentes de IA empresariais, Apresentando o Amazon Bedrock AgentCore Identity: protegendo IA agentic em escala e Exemplos do Amazon Bedrock AgentCore.
Fonte
Connecting MCP servers to Amazon Bedrock AgentCore Gateway using Authorization Code flow (https://aws.amazon.com/blogs/machine-learning/connecting-mcp-servers-to-amazon-bedrock-agentcore-gateway-using-authorization-code-flow/)
Leave a Reply