Partilhar via


Realização de chamadas utilizando o Secure Model Context Protocol para o Azure App Service a partir do Visual Studio Code com autenticação Microsoft Entra

Este artigo mostra-lhe como proteger o seu servidor Model Context Protocol (MCP) alojado no Azure App Service usando autenticação Microsoft Entra. Ao ativar a autenticação, garante que apenas os utilizadores autenticados com o Microsoft Entra podem aceder ao seu servidor MCP através do modo agente Copilot no Visual Studio Code.

Para outros métodos de autenticação e conceitos gerais de segurança de servidores MCP, veja Secure a Model Context Protocol server in Azure App Service.

Pré-requisitos

Uma aplicação de serviços de aplicações que aloja um servidor MCP. Se precisares de criar um, vê um dos seguintes tutoriais:

Habilitar a autenticação do Microsoft Entra

  1. No portal Azure, navegue até à sua aplicação de Serviços de Aplicações.

  2. No menu esquerdo, selecione Definições>Autenticação, e depois selecione Adicionar fornecedor de identidade.

  3. Na página Adicionar um fornecedor de identidade , selecione a Microsoft como fornecedor de Identidade.

  4. Nas definições de autenticação do App Service, para a expiração do segredo do cliente, selecione um período de expiração (por exemplo, 6 meses).

  5. Aceite todos os outros valores predefinidos e selecione Adicionar para criar o fornecedor de identidade.

    Isto cria um novo registo de aplicação no Microsoft Entra ID com um cliente secreto e configura a sua aplicação de Serviços de Aplicações para a usar para autenticação.

Autorizar o Código Visual Studio na autenticação do App Service

Depois de ativar a autenticação, precisa de autorizar o Visual Studio Code para aceder ao seu servidor MCP.

  1. Na página de Autenticação da sua aplicação de Serviços de Aplicações, em Fornecedor de Identidade, selecione Editar (o ícone do lápis) ao lado do fornecedor Microsoft que criou.

  2. Na página Editar fornecedor de identidade, sob Verificações adicionais>Requisito da aplicação cliente, selecione Permitir pedidos de aplicações cliente específicas.

  3. Selecione o widget lápis para editar as aplicações permitidas.

  4. No campo Aplicações cliente Permitidas , adicione o ID do cliente Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. Seleciona OK e depois seleciona Guardar.

Autorizar o Código Visual Studio no registo da aplicação

De seguida, precisa de configurar o registo da aplicação para expor a sua API ao Visual Studio Code.

  1. Volte à página de Autenticação da sua aplicação de Serviços de Aplicações.

  2. Selecione o fornecedor Microsoft na coluna Fornecedor de Identidade para abrir a página de registo da aplicação.

  3. Na página de registo da app, selecione Gerir>Expor uma API no menu esquerdo.

  4. Em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente.

  5. No campo ID do cliente , introduza o ID do cliente Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  6. Selecione a caixa de seleção ao lado do user_impersonation para autorizar este âmbito.

  7. Selecione Adicionar aplicativo.

  8. Nos âmbitos definidos por esta API, encontre e copie o valor completo do âmbito. Deve parecer com api://<app-registration-app-id>/user_impersonation.

    Precisas deste valor de escopo na secção seguinte.

Ative os metadados de recursos protegidos definindo o âmbito de autorização

Para ativar a autorização do servidor MCP, é necessário configurar os metadados de recursos protegidos (PRM) definindo o âmbito de autorização na configuração da aplicação. Isto permite aos clientes MCP descobrir os requisitos de autenticação através do /.well-known/oauth-protected-resource endpoint.

  1. No portal do Azure, volte à página do seu aplicativo App Service.

  2. No menu à esquerda, selecione Definições>Variáveis de Ambiente.

  3. Selecione Adicionar para criar uma nova configuração de aplicação.

  4. Em Nome, digite WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES.

  5. Para o Valor, cole o escopo que copiou do registo da aplicação: api://<app-registration-app-id>/user_impersonation.

  6. Selecione Candidatar-se, depois selecione Candidatar-se novamente para confirmar e reiniciar a sua aplicação.

    Esta configuração configura o PRM para incluir o âmbito necessário para a autorização do servidor MCP.

Liga-te a partir do Visual Studio Code

Agora pode ligar-se ao seu servidor MCP seguro a partir do Visual Studio Code.

  1. Abra o Visual Studio Code na sua máquina local.

  2. Abra ou crie um ficheiro de configuração MCP (mcp.json). Para uma configuração MCP com âmbito de espaço de trabalho, crie-o no diretório .vscode do seu espaço de trabalho.

  3. Adicione a configuração do seu servidor MCP:

    {
      "servers": {
        "my-app-service-mcp": {
          "type": "http",
          "url": "https://<your-app-url>.azurewebsites.net/api/mcp"
        }
      }
    }
    

    Substitua <your-app-url> pelo URL real do seu App Service. Pode encontrar o domínio predefinido da sua aplicação na página de Visão Geral do portal Azure. Neste exemplo, o caminho é /api/mcp, mas o caminho real depende do seu código MCP.

  4. No Visual Studio Code, abre a Paleta de Comandos (Ctrl+Shift+P ou Cmd+Shift+P no macOS).

  5. Digite MCP: Listar Servidores e pressione Enter.

  6. Selecione o seu servidor MCP da lista e escolha Iniciar Servidor.

  7. O Visual Studio Code pede-te automaticamente para iniciar sessão com o Microsoft Entra ID. Siga as instruções de autenticação.

    A extensão MCP gere o fluxo OAuth usando o âmbito que configuraste, e o Visual Studio Code obtém o token de acesso necessário para chamar o teu servidor MCP.

    Sugestão

    Se detetar um prompt de autenticação inesperado ou encontrar erros, consulte Resolução de Problemas.

  8. Uma vez autenticado, o seu servidor MCP está ligado e pronto a usar no modo agente GitHub Copilot Chat ou noutros clientes MCP.

Testar a ligação

Para verificar se o seu servidor MCP está devidamente seguro e acessível:

  1. Abre o GitHub Copilot Chat no Visual Studio Code (Ctrl+Alt+I ou Cmd+Option+I no macOS).

  2. Tenta usar uma funcionalidade do teu servidor MCP. Por exemplo, se você estiver a utilizar o exemplo de Todos:

    Show me all my tasks
    
  3. O GitHub Copilot deve ligar com sucesso ao teu servidor MCP, e deves ver os resultados no chat. Se encontrares algum problema, consulta a Resolução de Problemas.

Solução de problemas

Quando inicia o servidor MCP no Visual Studio Code, o prompt de autenticação que vê indica se a sua configuração está correta:

  • Configuração correta: O Visual Studio Code pede-te para autenticares com a Microsoft. Isto significa que os metadados de recursos protegidos (PRM) estão devidamente configurados, e o Visual Studio Code descobriu com sucesso o servidor de autorização e o âmbito a partir do /.well-known/oauth-protected-resource endpoint.

  • Configuração incorreta: O Visual Studio Code pede-lhe para autenticar com um /authorize endpoint na sua aplicação App Service (por exemplo, https://<your-app-url>.azurewebsites.net/authorize). Isto significa que o PRM não está configurado corretamente. O Visual Studio Code não consegue encontrar o servidor de autorização nem o âmbito de autorização, por isso volta a usar a URL da tua aplicação como endpoint de autorização, que não existe.

Se vires o prompt de autenticação incorreto, verifica que:

  • As definições da tua aplicação WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES estão corretamente configuradas com o valor de alcance total api://<app-registration-app-id>/user_impersonation.
  • A aplicação App Service reiniciou completamente após adicionar a configuração da aplicação. Pode demorar alguns minutos a completar o reinício.

Se detetar erros de autenticação após iniciar sessão, verifique que:

  • O ID do cliente Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56) é adicionado tanto à configuração de autenticação do App Service (aplicações cliente permitidas) como ao registo da app (aplicações cliente autorizadas no Expose an API).
  • O valor do escopo nas definições da aplicação corresponde exatamente ao que está definido no registo da sua aplicação.