Secure Model Context Protocol-anrop till Azure App Service från Visual Studio Code med Microsoft Entra-autentisering

Den här artikeln visar hur du skyddar din MCP-server (Model Context Protocol) som finns i Azure App Service med hjälp av Microsoft Entra-autentisering. Genom att aktivera autentisering ser du till att endast användare som autentiseras med Microsoft Entra kan komma åt mcp-servern via Copilot-agentläget i Visual Studio Code.

Andra autentiseringsmetoder och allmänna säkerhetsbegrepp för MCP-servrar finns i Skydda en modellkontextprotokollserver i Azure App Service.

Förutsättningar

En App Service-app som är värd för en MCP-server. Om du behöver skapa en kan du läsa någon av följande handledningar:

Aktivera Microsoft Entra-autentisering

  1. I Azure-portalen navigerar du till din App Service-app.

  2. I den vänstra menyn väljer du Inställningar>Autentisering och sedan Lägg till identitetsprovider.

  3. På sidan Lägg till en identitetsprovider väljer du Microsoft som identitetsprovider.

  4. I autentiseringsinställningar för App Service, väljer du för utgångsdatum för klienthemlighet en tidsperiod (till exempel 6 månader).

  5. Acceptera alla andra standardvärden och välj Lägg till för att skapa identitetsprovidern.

    Detta skapar en ny appregistrering i Microsoft Entra-ID med en klienthemlighet och konfigurerar din App Service-app att använda den för autentisering.

Auktorisera Visual Studio Code i App Service-autentisering

När du har aktiverat autentisering måste du auktorisera Visual Studio Code för att få åtkomst till MCP-servern.

  1. På sidan Autentisering i din App Service-app går du till Identitetsprovider och väljer Redigera (pennikonen) bredvid den Microsoft-provider som du skapade.

  2. På sidan Redigera identitetsprovider går du till Ytterligare kontroller>Krav för klientprogram och väljer Tillåt begäranden från specifika klientprogram.

  3. Välj pennwidgeten för att redigera de tillåtna programmen.

  4. I fältet Tillåtna klientprogram lägger du till Visual Studio Code-klient-ID:t: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. Välj OK och välj sedan Spara.

Auktorisera Visual Studio Code i appregistreringen

Därefter måste du konfigurera appregistreringen så att api:et exponeras för Visual Studio Code.

  1. Gå tillbaka till sidan Autentisering i din App Service-app.

  2. Välj Microsoft-providern i kolumnen Identitetsprovider för att öppna appregistreringssidan.

  3. På appregistreringssidan väljer du Hantera Exponera>ett API på den vänstra menyn.

  4. Under Auktoriserade klientprogram väljer du Lägg till ett klientprogram.

  5. I fältet Klient-ID anger du Visual Studio Code-klient-ID:t: aebc6443-996d-45c2-90f0-388ff96faa56.

  6. Markera kryssrutan bredvid omfånget user_impersonation för att auktorisera det här omfånget.

  7. Välj Lägg till program.

  8. Under rubriken Omfång som definieras av det här API:et, leta upp och kopiera det fullständiga omfångsvärdet. Det bör se ut som api://<app-registration-app-id>/user_impersonation.

    Du behöver det här omfångsvärdet i nästa avsnitt.

Aktivera skyddade resursmetadata genom att ange auktoriseringsomfånget

För att aktivera MCP-serverauktorisering måste du konfigurera skyddade resursmetadata (PRM) genom att ange auktoriseringsomfånget i en appinställning. På så sätt kan MCP-klienter identifiera autentiseringskraven via /.well-known/oauth-protected-resource slutpunkten.

  1. Gå tillbaka till appsidan för App Service i Azure-portalen.

  2. I den vänstra menyn väljer du Inställningar>Miljövariabler.

  3. Välj Lägg till för att skapa en ny programinställning.

  4. För Namn ange WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES.

  5. För Värde klistrar du in det omfång som du kopierade från appregistreringen: api://<app-registration-app-id>/user_impersonation.

  6. Välj Använd och välj sedan Använd igen för att bekräfta och starta om appen.

    Den här inställningen konfigurerar PRM för att inkludera det nödvändiga omfånget för MCP-serverauktorisering.

Ansluta från Visual Studio Code

Nu kan du ansluta till din skyddade MCP-server från Visual Studio Code.

  1. Öppna Visual Studio Code på din lokala dator.

  2. Öppna eller skapa en MCP-konfigurationsfil (mcp.json). För en MCP-konfiguration som är begränsad till arbetsytan skapar du den i .vscode-katalogen på din arbetsyta.

  3. Lägg till mcp-serverkonfigurationen:

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

    Ersätt <your-app-url> med din faktiska App Service-app-URL. Du hittar appens standarddomän på sidan Översikt i Azure-portalen. I det här exemplet är sökvägen /api/mcp, men den faktiska sökvägen beror på din MCP-kod.

  4. Öppna kommandopaletten (Ctrl+Shift+P eller Cmd+Shift+P på macOS) i Visual Studio Code.

  5. Skriv MCP: Lista servrar och tryck på Retur.

  6. Välj din MCP-server i listan och välj Starta server.

  7. Visual Studio Code uppmanar dig automatiskt att logga in med Microsoft Entra-ID. Följ anvisningarna för autentisering.

    MCP-tillägget hanterar OAuth-flödet med det omfång som du har konfigurerat, och Visual Studio Code hämtar den åtkomsttoken som krävs för att anropa MCP-servern.

    Tips/Råd

    Om du ser en oväntad autentiseringsprompt eller får fel läser du Felsökning.

  8. När mcp-servern har autentiserats är den ansluten och redo att användas i GitHub Copilot Chat-agentläge eller andra MCP-klienter.

Testa anslutningen

Så här kontrollerar du att MCP-servern är korrekt skyddad och tillgänglig:

  1. Öppna GitHub Copilot Chat i Visual Studio Code (Ctrl+Alt+I eller Cmd+Option+I på macOS).

  2. Prova att använda en funktion från MCP-servern. Om du till exempel använder Todos-exemplet:

    Show me all my tasks
    
  3. GitHub Copilot bör ansluta till MCP-servern, och resultatet ska visas i chatten. Om du stöter på problem kan du läsa Felsökning.

Felsökning

När du startar MCP-servern i Visual Studio Code anger autentiseringsprompten som du ser om konfigurationen är korrekt:

  • Rätt konfiguration: Visual Studio Code uppmanar dig att autentisera med Microsoft. Det innebär att skyddade resursmetadata (PRM) har konfigurerats korrekt, och Visual Studio Code har framgångsrikt upptäckt auktoriseringsservern och omfånget från /.well-known/oauth-protected-resource-slutpunkten.

  • Felaktig konfiguration: Visual Studio Code uppmanar dig att autentisera med en /authorize slutpunkt i din App Service-app (till exempel https://<your-app-url>.azurewebsites.net/authorize). Det innebär att prm inte har konfigurerats korrekt. Visual Studio Code kan inte hitta auktoriseringsservern och auktoriseringsomfånget, så det återgår till att använda appens URL som auktoriseringsslutpunkt, som inte finns.

Om du ser den felaktiga autentiseringsprompten kontrollerar du att:

  • Appinställningen WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES är korrekt konfigurerad med det fullständiga omfångsvärdet api://<app-registration-app-id>/user_impersonation.
  • App Service-appen har startats om helt efter att appinställningen har lagts till. Det kan ta några minuter att slutföra omstarten.

Om du ser autentiseringsfel efter inloggningen kontrollerar du att:

  • Visual Studio Code-klient-ID (aebc6443-996d-45c2-90f0-388ff96faa56) läggs till i både App Service-autentiseringskonfigurationen (tillåtna klientprogram) och i appregistreringen (auktoriserade klientprogram i Exponera ett API).
  • Omfångsvärdet i appinställningen matchar exakt det som definieras i appregistreringen.