Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APPLIES TO: Desenvolvedor | Básico | Básico v2 | Padrão | Standard v2 | Premium | Premium v2
Com o suporte do servidor MCP no Gerenciamento de API, você pode expor e controlar o acesso a servidores MCP e suas ferramentas. Este artigo descreve como proteger o acesso aos servidores MCP gerenciados no Gerenciamento de API, incluindo servidores MCP expostos de APIs REST gerenciadas e servidores MCP existentes hospedados fora do Gerenciamento de API.
Você pode proteger o acesso de entrada ou de entrada ao servidor MCP (de um cliente MCP ao Gerenciamento de API) e acesso de saída (do Gerenciamento de API ao servidor MCP).
Acesso de entrada seguro
Autenticação baseada em chave
Se o servidor MCP estiver protegido com uma chave de assinatura de Gerenciamento de API passada em um Ocp-Apim-Subscription-Key cabeçalho, os clientes MCP poderão apresentar a chave nas solicitações de entrada e o servidor MCP poderá validar a chave. Por exemplo, no Visual Studio Code, você pode adicionar uma headers seção à configuração do servidor MCP para exigir a chave de assinatura nos cabeçalhos de solicitação:
{
"name": "My MCP Server",
"type": "remote",
"url": "https://my-api-management-instance.azure-api.net/my-mcp-server",
"transport": "streamable-http",
"headers": {
"Ocp-Apim-Subscription-Key": "<subscription-key>"
}
}
Observação
Gerencie com segurança as chaves de assinatura usando configurações de workspace do Visual Studio Code ou entradas seguras.
Autenticação baseada em token (OAuth 2.1 com a ID do Microsoft Entra)
Os clientes MCP podem apresentar tokens OAuth ou JWTs emitidos pela ID do Microsoft Entra usando um Authorization cabeçalho e validados pelo Gerenciamento de API.
Por exemplo, use a política validar-azure-ad-token para validar tokens de ID do Microsoft Entra:
<validate-azure-ad-token tenant-id="your-entra-tenant-id" header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<client-application-ids>
<application-id>your-client-application-id</application-id>
</client-application-ids>
</validate-azure-ad-token>
Encaminhar tokens para back-end
Os cabeçalhos de solicitação são encaminhados automaticamente (com determinadas exclusões) para invocações da ferramenta MCP, simplificando a integração com APIs downstream que dependem de cabeçalhos para roteamento, contexto ou autenticação.
Se você precisar de encaminhamento explícito do Authorization cabeçalho para validar as solicitações de entrada, poderá usar uma das seguintes abordagens:
Defina
Authorizationexplicitamente como um cabeçalho necessário nas configurações da API e encaminhe o cabeçalho naOutboundpolítica.Exemplo de snippet de política:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Use o gerenciador de credenciais de Gerenciamento de API e as políticas (
get-authorization-context,set-header) para encaminhar o token com segurança. Consulte Acesso de saída seguro para obter detalhes.
Para obter mais opções e exemplos de autorização de entrada, consulte:
Autorização do servidor MCP com exemplo de PRM (Metadados de Recursos Protegidos)
Proteger servidores MCP remotos usando o Gerenciamento de API do Azure (Experimental)
Acesso de saída seguro
Use o gerenciador de credenciais do Gerenciamento de API para injetar tokens OAuth 2.0 com segurança para solicitações de API de back-end feitas por ferramentas de servidor MCP.
Etapas para configurar o acesso de saída baseado em OAuth 2
Etapa 1: Registre um aplicativo no provedor de identidade.
Etapa 2: Crie um provedor de credenciais no Gerenciamento de API vinculado ao provedor de identidade.
Etapa 3: Configurar conexões no gerenciador de credenciais.
Etapa 4: Aplique políticas de Gerenciamento de API para buscar e anexar credenciais dinamicamente.
Por exemplo, a política a seguir recupera um token de acesso do gerenciador de credenciais e o define no Authorization cabeçalho da solicitação de saída:
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="your-credential-provider-id"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Para obter um guia passo a passo para chamar um back-end de exemplo usando credenciais geradas no gerenciador de credenciais, consulte Configurar o gerenciador de credenciais – GitHub.