Partilhar via


Configurar autenticação para SQL MCP Server

Importante

O SQL Model Context Protocol (MCP) Server está disponível no Data API builder versão 1.7 e posteriores.

Observação

A funcionalidade SQL MCP Server 2.0 descrita nesta secção está atualmente em pré-visualização e pode mudar antes da disponibilidade geral. Para mais informações, consulte O que há de novo na versão 2.0.

O SQL MCP Server expõe um endpoint do Model Context Protocol (MCP) no Data API Builder. Algumas opções de autenticação utilizam JSON Web Tokens (JWTs).

Quando liga um cliente (por exemplo, um agente Microsoft AI Foundry) ao SQL MCP Server, a autenticação torna-se uma configuração em duas direções:

  • Autenticação de entrada (cliente para SQL MCP Server): como o cliente autentica ao chamar o seu endpoint MCP (por exemplo, https://<host>/mcp).
  • Autenticação de saída (SQL MCP Server para base de dados): como o SQL MCP Server se autentica na sua base de dados.

Use o diagrama seguinte para se orientar. No resto deste artigo, configura primeiro a saída (para que o servidor possa aceder à base de dados), depois configure a entrada (para que o seu cliente possa chamar o servidor de forma segura).

Diagrama que mostra os fluxos de autenticação de entrada e saída entre a aplicação cliente, o SQL MCP Server e a base de dados.

Observação

A "Aplicação Cliente" pode ser um agente Microsoft AI Foundry, uma aplicação cliente MCP personalizada ou outro runtime de agente. A configuração de entrada no SQL MCP Server é a mesma independentemente de qual cliente chame o endpoint MCP.

Pré-requisitos

  • Servidor SQL MCP em execução (Data API builder 1.7+)
  • Um existente dab-config.json com no mínimo uma entidade
  • Um projeto Microsoft AI Foundry com um agente onde podes adicionar uma ligação à ferramenta MCP

Passo 1: Configurar autenticação de saída (SQL MCP Server para base de dados)

Define autenticação de saída na sua data-source configuração. Geralmente, é a cadeia de conexão.

Diagrama que mostra o fluxo de autenticação de saída do SQL MCP Server para a base de dados.

Várias fontes de dados

SQL MCP Server suporta múltiplas fontes de dados através de data-source-files. Cada fonte de dados pode ter as suas próprias definições de autenticação de saída. Por exemplo, uma base de dados pode usar identidade gerida enquanto outra usa um nome de utilizador e palavra-passe SQL. As fontes de dados também podem partilhar uma única identidade, dependendo de como configura o acesso à base de dados.

Diagrama mostrando a autenticação de saída do SQL MCP Server para múltiplas bases de dados com credenciais por base de dados.

Para mais informações, consulte Adicionar mais do que uma fonte de dados e configuração da fonte de dados.

Configurar a ligação à base de dados

No seu dab-config.json, defina data-source.database-type e data-source.connection-string.

Sugestão

Use @env() para manter segredos fora do ficheiro de configuração.

Exemplo: utilizador/palavra-passe SQL (desenvolvimento)

O SQL MCP Server suporta autenticação SQL com nome de utilizador e palavra-passe. Esta abordagem é comum para desenvolvimento, testes e certos ambientes de produção.

Diagrama que mostra o fluxo de autenticação de utilizador/palavra-passe em SQL.

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

Exemplo de valor de variável de ambiente:

Server=tcp:<server>.database.windows.net,1433;Initial Catalog=<database>;User ID=<user>;Password=<password>;Encrypt=True;TrustServerCertificate=False;

SQL MCP Server suporta Identidades de Serviço Gerido (MSI) para Azure SQL usando DefaultAzureCredential. Configure a cadeia de conexão para usar a autenticação de identidade gerida.

Diagrama mostrando o fluxo gerido de autenticação de identidade.

Server=tcp:<server>.database.windows.net,1433;Initial Catalog=<database>;Authentication=Active Directory Managed Identity;

Para identidade gerida atribuída pelo utilizador (UAMI), inclua o ID do cliente de identidade:

Server=tcp:<server>.database.windows.net,1433;Initial Catalog=<database>;Authentication=Active Directory Managed Identity;User Id=<uami-client-id>;

Para detalhes completos, consulte Configuração da Fonte de Dados.

Passo 2: Configurar autenticação de entrada (cliente para SQL MCP Server)

A autenticação de entrada controla como o cliente MCP se autentica no SQL MCP Server.

Diagrama a mostrar o fluxo de autenticação de entrada da aplicação cliente para o SQL MCP Server.

Fornecedores OAuth

SQL MCP Server pode validar JSON Web Tokens (JWTs) emitidos por um fornecedor OAuth (por exemplo, Microsoft Entra ID). O cliente inclui o token em cada pedido, e o SQL MCP Server valida-o.

Diagrama mostrando um fornecedor OAuth a emitir JWTs para um cliente que chama SQL MCP Server.

Autenticação de gateway (opcional)

Se o seu cliente MCP precisar de chaves API ou outro esquema que não seja JWT, coloque o SQL MCP Server com um gateway ou proxy que autentique o cliente e encaminhe os pedidos para o endpoint MCP.

Para um padrão Azure alojado, veja Acesso seguro a servidores MCP em API Management.

Diagrama que mostra um gateway de API a proteger o servidor SQL MCP.

Vários clientes

A autenticação de entrada é configurada uma vez por instância de SQL MCP Server, por exemplo, usando runtime.host.authentication.provider. Todos os clientes que chamam o mesmo endpoint MCP devem usar uma abordagem de autenticação compatível. Por exemplo, todos os clientes podem usar tokens Microsoft Entra para o mesmo público.

Diagrama mostrando múltiplas aplicações clientes a usar a mesma configuração de autenticação de entrada para aceder ao SQL MCP Server.

Sugestão

Se precisares de dois esquemas diferentes de autenticação de entrada (por exemplo, um cliente usa Microsoft Entra e outro um fornecedor de identidade diferente), executa duas instâncias SQL MCP Server com definições runtime.host.authentication diferentes.

Microsoft AI Foundry

Use estes passos quando o seu cliente for um agente da Microsoft AI Foundry.

  1. No seu projeto de agente, selecione Adicionar uma ferramenta.
  2. Selecione a guia Personalizado.
  3. Selecione Protocolo de contexto do modelo.
  4. Defina o endpoint do Remote MCP Server (por exemplo, https://<your-server>/mcp).
  5. Selecione um modo de autenticação .

Captura de ecrã de adicionar uma ferramenta no Microsoft AI Foundry.

Depois de configurar o Foundry, deve configurar o SQL MCP Server para aceitar o mesmo modo de autenticação de entrada.

Observação

Este artigo foca-se na ligação à ferramenta MCP. Não cobre a configuração da autenticação para endpoints REST do Foundry Agent Service.

Modos de autenticação da fundição

Não autenticado

A partir do DAB 2.0, o fornecedor de autenticação por defeito é Unauthenticated. Configure o SQL MCP Server para tratar os pedidos como anonymous usando o fornecedor padrão Unauthenticated (ou conjunto provider: AppService) e conceda apenas as anonymous permissões que pretende.

Para o comportamento de autenticação DAB subjacente, veja Configurar o fornecedor Não Autenticado.

Diagrama a mostrar o fluxo de autenticação do Foundry que não requer autenticação prévia.

Microsoft Entra ou OAuth identity passthrough

Configure o SQL MCP Server para validar JWTs (provider: EntraId).

Diagrama mostrando o fluxo de autenticação da Foundry Microsoft Entra.

Baseado em chaves

Não é suportado diretamente. Se tiver de usar uma chave, coloque no endpoint MCP um gateway como o Azure API Management. Veja Acesso Seguro a servidores MCP na Gestão de APIs.

Diagrama que mostra o fluxo de autenticação baseado em chaves da Foundry.

Para detalhes específicos de configuração da Foundry, consulte orientações de autenticação do Foundry MCP.

Registe uma aplicação no Microsoft Entra ID

É necessário um registo de aplicação para Microsoft Entra e OAuth identity passthrough.

  • Registe o ID do Inquilino (Diretório) (usado para construir jwt.issuer).
  • Regista o URI do ID da Aplicação (recomendado para jwt.audience e para o público da Foundry).

Para os passos de registo da candidatura, consulte Registar uma candidatura em Microsoft Entra ID.

Configurar SQL MCP Server com Entra ID

Configure o fornecedor EntraId e defina os valores jwt.audience e jwt.issuer.

Exemplos de linha de comandos

Os exemplos seguintes usam os dab configure comandos e dab update para definir opções de autenticação.

dab configure \
  --runtime.host.authentication.provider EntraId

dab configure \
  --runtime.host.authentication.jwt.audience "api://<app-id-or-audience>"

dab configure \
  --runtime.host.authentication.jwt.issuer "https://login.microsoftonline.com/<tenant-id>/v2.0"

# Grant permissions for authenticated users (repeat per entity)
dab update \
  Products \
  --permissions "authenticated:read"