Compartilhar via


Proteja as chamadas do Protocolo de Contexto de Modelo para o Serviço de Aplicativo do Azure a partir do Visual Studio Code com autenticação do Microsoft Entra

Este artigo mostra como proteger o servidor MCP (Model Context Protocol) hospedado no Serviço de Aplicativo do Azure usando a autenticação do Microsoft Entra. Ao habilitar a autenticação, você garante que somente os usuários autenticados com o Microsoft Entra possam acessar o servidor MCP por meio do modo de agente copilot no Visual Studio Code.

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

Pré-requisitos

Um aplicativo do Serviço de Aplicativo que hospeda um servidor MCP. Se você precisar criar um, confira um dos seguintes tutoriais:

Habilitar a autenticação do Microsoft Entra

  1. No portal do Azure, navegue até seu aplicativo do Serviço de Aplicativo.

  2. No menu à esquerda, selecioneAutenticação de> e, em seguida, selecione Adicionar provedor de identidade.

  3. Na página Adicionar um provedor de identidade , selecione a Microsoft como o provedor de identidade.

  4. Nas configurações de autenticação do Serviço de Aplicativo, para expiração do segredo do cliente, selecione um período de expiração (por exemplo, 6 meses).

  5. Aceite todos os outros valores padrão e selecione Adicionar para criar o provedor de identidade.

    Isso cria um novo registro de aplicativo no Microsoft Entra ID com um segredo do cliente e configura seu aplicativo App Service para usá-lo na autenticação.

Autorizar o Visual Studio Code na autenticação do Serviço de Aplicativo

Depois de habilitar a autenticação, você precisa autorizar o Visual Studio Code a acessar o servidor MCP.

  1. Na página Autenticação do seu aplicativo do Serviço de Aplicativo, em Provedor de identidade, selecione Editar (o ícone de lápis) ao lado do provedor da Microsoft que você criou.

  2. Na página Editar provedor de identidade, em Verificações adicionais, selecione>Permitir solicitações de aplicativos cliente específicos.

  3. Selecione o widget de lápis para editar os aplicativos permitidos.

  4. No campo Aplicativos cliente permitidos , adicione a ID do cliente do Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. Selecione OK e, em seguida, selecione Salvar.

Autorizar o Visual Studio Code no registro do aplicativo

Em seguida, você precisa configurar o registro do aplicativo para expor sua API ao Visual Studio Code.

  1. Volte para a página Autenticação do seu aplicativo do Serviço de Aplicativo.

  2. Selecione o provedor da Microsoft na coluna Provedor de identidade para abrir a página de registro do aplicativo.

  3. Na página de registro do aplicativo, selecione Gerenciar>Expor uma API no menu à esquerda.

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

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

  6. Marque a caixa de seleção ao lado do escopo user_impersonation para autorizar esse escopo.

  7. Selecione Adicionar aplicativo.

  8. Em Escopos definidos por essa API, localize e copie o valor de escopo completo. Ela deve ter aparência semelhante a api://<app-registration-app-id>/user_impersonation.

    Você precisa desse valor de escopo na próxima seção.

Habilitar metadados de recursos protegidos definindo o escopo de autorização

Para habilitar a autorização do servidor MCP, você precisa configurar os PRM (metadados de recursos protegidos) definindo o escopo de autorização em uma configuração de aplicativo. Isso permite que os clientes MCP descubram os requisitos de autenticação por meio do /.well-known/oauth-protected-resource endpoint.

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

  2. No menu à esquerda, selecioneVariáveis de Ambiente de >.

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

  4. Para Nome, insira WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES.

  5. Para Valor, cole o escopo copiado do registro do aplicativo: api://<app-registration-app-id>/user_impersonation.

  6. Selecione Aplicar e, em seguida, selecione Aplicar novamente para confirmar e reiniciar seu aplicativo.

    Essa configuração configura o PRM para incluir o escopo necessário para autorização do servidor MCP.

Conectar-se a partir do Visual Studio Code

Agora você pode se conectar ao servidor MCP protegido do Visual Studio Code.

  1. Abra o Visual Studio Code no computador local.

  2. Abra ou crie um arquivo de configuração do MCP (mcp.json). Para uma configuração MCP com escopo de workspace, crie-a no diretório .vscode do seu workspace.

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

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

    Substitua <your-app-url> pela URL real do seu aplicativo do Serviço de Aplicativo. Você pode encontrar o domínio padrão do aplicativo na página Visão geral no portal do Azure. Neste exemplo, o caminho é /api/mcp, mas o caminho real depende do código MCP.

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

  5. Tipo MCP: Listar servidores e pressionar Enter.

  6. Selecione o servidor MCP na lista e escolha Iniciar Servidor.

  7. O Visual Studio Code solicita automaticamente que você entre com a ID do Microsoft Entra. Siga os prompts de autenticação.

    A extensão MCP manipula o fluxo OAuth usando o escopo configurado e o Visual Studio Code obtém o token de acesso necessário para chamar o servidor MCP.

    Dica

    Se você vir um prompt de autenticação inesperado ou encontrar erros, consulte solução de problemas.

  8. Depois de autenticado, o servidor MCP está conectado e pronto para uso no modo de agente do GitHub Copilot Chat ou em outros clientes MCP.

Testar a conexão

Para verificar se o servidor MCP está protegido e acessível corretamente:

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

  2. Tente usar um recurso do servidor MCP. Por exemplo, se você estiver usando o exemplo Todos:

    Show me all my tasks
    
  3. O GitHub Copilot deve chamar com êxito seu servidor MCP e você deverá ver os resultados no chat. Se você encontrar algum problema, consulte solução de problemas.

Resolução de problemas

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

  • Configuração correta: o Visual Studio Code solicita que você se autentique com a Microsoft. Isso significa que os metadados do recurso protegido (PRM) estão configurados corretamente e que o Visual Studio Code descobriu com êxito o servidor de autorização e o escopo do ponto de extremidade /.well-known/oauth-protected-resource.

  • Configuração incorreta: o Visual Studio Code solicita que você se autentique com um /authorize endpoint em seu aplicativo do App Service (por exemplo, https://<your-app-url>.azurewebsites.net/authorize). Isso significa que o PRM não está configurado corretamente. O Visual Studio Code não consegue localizar o servidor de autorização e o escopo de autorização, portanto, ele volta a usar a URL do aplicativo como o ponto de extremidade de autorização, que não existe.

Se você perceber o aviso de autenticação incorreto, verifique se:

  • A configuração do aplicativo WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES está corretamente configurada com o valor de escopo completo api://<app-registration-app-id>/user_impersonation.
  • O aplicativo do Serviço de Aplicativos foi totalmente reiniciado após a adição da configuração do aplicativo. Pode levar alguns minutos para concluir a reinicialização.

Se você vir erros de autenticação após entrar, verifique se:

  • A ID do cliente do Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56) é adicionada à configuração de autenticação do Serviço de Aplicativo (aplicativos cliente permitidos) e ao registro do aplicativo (aplicativos cliente autorizados em Expor uma API).
  • O valor do escopo na configuração do aplicativo corresponde exatamente ao que é definido no registro do aplicativo.