Udostępnij przez


Bezpieczne wywołania protokołu kontekstu modelu w usłudze Azure App Service z programu Visual Studio Code z uwierzytelnianiem firmy Microsoft Entra

W tym artykule pokazano, jak zabezpieczyć serwer protokołu MCP (Model Context Protocol) hostowany w usłudze Azure App Service przy użyciu uwierzytelniania firmy Microsoft Entra. Włączając uwierzytelnianie, upewnij się, że tylko użytkownicy uwierzytelnieni w usłudze Microsoft Entra mogą uzyskiwać dostęp do serwera MCP za pośrednictwem trybu agenta Copilot w programie Visual Studio Code.

Aby zapoznać się z innymi metodami uwierzytelniania i ogólnymi pojęciami dotyczącymi zabezpieczeń serwera MCP, zobacz Secure a Model Context Protocol server in Azure App Service (Zabezpieczanie serwera protokołu kontekstu modelu w usłudze Azure App Service).

Wymagania wstępne

Aplikacja usługi App Service, która hostuje serwer MCP. Jeśli musisz go utworzyć, zobacz jeden z następujących samouczków:

Włącz uwierzytelnianie Microsoft Entra

  1. W witrynie Azure Portal przejdź do aplikacji usługi App Service.

  2. W menu po lewej stronie wybierz Ustawienia>Uwierzytelnianie, a następnie wybierz pozycję Dodaj dostawcę tożsamości.

  3. Na stronie Dodawanie dostawcy tożsamości wybierz pozycję Microsoft jako dostawca tożsamości.

  4. W sekcji Ustawienia uwierzytelniania usługi App Service, dla Wygaśnięcia tajnych danych klienta wybierz okres wygaśnięcia (na przykład 6 miesięcy).

  5. Zaakceptuj wszystkie inne wartości domyślne i wybierz pozycję Dodaj , aby utworzyć dostawcę tożsamości.

    Spowoduje to utworzenie nowej rejestracji aplikacji w Microsoft Entra ID z tajnym hasłem klienta i skonfigurowanie aplikacji usługi App Service do używania go w uwierzytelnianiu.

Autoryzowanie programu Visual Studio Code w uwierzytelnianiu w usłudze App Service

Po włączeniu uwierzytelniania należy autoryzować program Visual Studio Code w celu uzyskania dostępu do serwera MCP.

  1. Na stronie Uwierzytelnianie aplikacji usługi App Service w obszarze Dostawca tożsamości wybierz pozycję Edytuj (ikonę ołówka) obok utworzonego dostawcy firmy Microsoft.

  2. Na stronie Edytowanie dostawcy tożsamości w obszarze Dodatkowe sprawdzanie>wymagań aplikacji klienckiej wybierz pozycję Zezwalaj na żądania z określonych aplikacji klienckich.

  3. Wybierz widżet ołówka, aby edytować dozwolone aplikacje.

  4. W polu Dozwolone aplikacje klienckie dodaj identyfikator klienta programu Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. Wybierz przycisk OK, a następnie wybierz pozycję Zapisz.

Autoryzowanie programu Visual Studio Code w rejestracji aplikacji

Następnie należy skonfigurować rejestrację aplikacji, aby umożliwić udostępnianie API w programie Visual Studio Code.

  1. Wróć do strony Uwierzytelnianie aplikacji usługi App Service.

  2. Wybierz dostawcę firmy Microsoft w kolumnie Dostawca tożsamości , aby otworzyć stronę rejestracji aplikacji.

  3. Na stronie rejestracji aplikacji wybierz pozycję Zarządzaj>uwidaczniaj interfejs API z menu po lewej stronie.

  4. W obszarze Autoryzowane aplikacje klienckie wybierz pozycję Dodaj aplikację kliencką.

  5. W polu Identyfikator klienta wprowadź identyfikator klienta programu Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  6. Zaznacz pole wyboru obok zakresu user_impersonation , aby autoryzować ten zakres.

  7. Wybierz Dodaj aplikację.

  8. W obszarze Zakresy zdefiniowane przez ten interfejs API znajdź i skopiuj wartość pełnego zakresu. Powinien wyglądać następująco: api://<app-registration-app-id>/user_impersonation.

    Ta wartość zakresu jest potrzebna w następnej sekcji.

Włączanie metadanych chronionych zasobów przez ustawienie zakresu autoryzacji

Aby włączyć autoryzację serwera MCP, należy skonfigurować chronione metadane zasobów (PRM), ustawiając zakres autoryzacji w ustawieniu aplikacji. Dzięki temu klienci MCP mogą odnajdywać wymagania dotyczące uwierzytelniania za pośrednictwem punktu końcowego /.well-known/oauth-protected-resource .

  1. W witrynie Azure Portal wróć do strony aplikacji usługi App Service.

  2. W menu po lewej stronie wybierz pozycję Ustawienia>Zmienne środowiskowe.

  3. Wybierz pozycję Dodaj , aby utworzyć nowe ustawienie aplikacji.

  4. W polu Nazwa wprowadź WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES.

  5. W polu Wartość wklej zakres skopiowany z rejestracji aplikacji: api://<app-registration-app-id>/user_impersonation.

  6. Wybierz pozycję Zastosuj, a następnie ponownie wybierz pozycję Zastosuj , aby potwierdzić i ponownie uruchomić aplikację.

    To ustawienie konfiguruje PRM, aby uwzględniał wymagany zakres dla autoryzacji serwera MCP.

Nawiązywanie połączenia z programu Visual Studio Code

Teraz możesz nawiązać połączenie z zabezpieczonym serwerem MCP z poziomu programu Visual Studio Code.

  1. Otwórz program Visual Studio Code na komputerze lokalnym.

  2. Otwórz lub utwórz plik konfiguracji MCP (mcp.json). W przypadku konfiguracji MCP w zakresie obszaru roboczego utwórz ją w katalogu .vscode obszaru roboczego.

  3. Dodaj konfigurację serwera MCP:

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

    Zastąp <your-app-url> właściwym adresem URL swojej aplikacji App Service. Domyślną domenę aplikacji można znaleźć na stronie Przegląd w witrynie Azure Portal. W tym przykładzie ścieżka to /api/mcp, ale rzeczywista ścieżka zależy od kodu MCP.

  4. W programie Visual Studio Code otwórz paletę poleceń (Ctrl+Shift+P lub Cmd+Shift+P w systemie macOS).

  5. Wpisz MCP: Lista serwerów i naciśnij Enter.

  6. Wybierz serwer MCP z listy i wybierz pozycję Uruchom serwer.

  7. Program Visual Studio Code automatycznie wyświetla monit o zalogowanie się przy użyciu identyfikatora Entra firmy Microsoft. Postępuj zgodnie z monitami uwierzytelniania.

    Rozszerzenie MCP obsługuje przepływ protokołu OAuth przy użyciu skonfigurowanego zakresu, a program Visual Studio Code uzyskuje niezbędny token dostępu do wywołania serwera MCP.

    Wskazówka

    Jeśli zostanie wyświetlony nieoczekiwany monit o uwierzytelnienie lub napotkasz błędy, zobacz Rozwiązywanie problemów.

  8. Po uwierzytelnieniu serwer MCP jest połączony i gotowy do użycia w trybie agenta czatu Copilot w usłudze GitHub lub innych klientach MCP.

Testowanie połączenia

Aby sprawdzić, czy serwer MCP jest prawidłowo zabezpieczony i dostępny:

  1. Otwórz aplikację GitHub Copilot Chat w programie Visual Studio Code (Ctrl+Alt+I lub Cmd+Option+I w systemie macOS).

  2. Spróbuj użyć funkcji z serwera MCP. Jeśli na przykład używasz przykład Todos:

    Show me all my tasks
    
  3. Narzędzie GitHub Copilot powinno pomyślnie wywołać serwer MCP i powinny zostać wyświetlone wyniki rozmowy. Jeśli wystąpią jakiekolwiek problemy, zobacz Rozwiązywanie problemów.

Rozwiązywanie problemów

Po uruchomieniu serwera MCP w programie Visual Studio Code zostanie wyświetlony monit o uwierzytelnienie wskazujący, czy konfiguracja jest poprawna:

  • Poprawna konfiguracja: program Visual Studio Code wyświetla monit o uwierzytelnienie w firmie Microsoft. Oznacza to, że chronione metadane zasobów (PRM) są prawidłowo skonfigurowane, a program Visual Studio Code pomyślnie wykrył serwer autoryzacji i zakres z punktu końcowego /.well-known/oauth-protected-resource.

  • Nieprawidłowa konfiguracja: program Visual Studio Code wyświetla monit o uwierzytelnienie za pomocą punktu końcowego /authorize w aplikacji usługi App Service (na przykład https://<your-app-url>.azurewebsites.net/authorize). Oznacza to, że PRM nie jest prawidłowo skonfigurowany. Program Visual Studio Code nie może odnaleźć serwera autoryzacji i zakresu autoryzacji, dlatego wraca do używania adresu URL aplikacji jako punktu końcowego autoryzacji, który nie istnieje.

Jeśli zostanie wyświetlony niepoprawny monit o uwierzytelnienie, sprawdź, czy:

  • Ustawienie WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES aplikacji jest poprawnie skonfigurowane z pełną wartością api://<app-registration-app-id>/user_impersonationzakresu .
  • Aplikacja usługi App Service została w pełni uruchomiona ponownie po dodaniu ustawienia aplikacji. Ponowne uruchomienie może potrwać kilka minut.

Jeśli po zalogowaniu się zobaczysz błędy uwierzytelniania, sprawdź, czy:

  • Identyfikator klienta programu Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56) jest dodawany do konfiguracji uwierzytelniania usługi App Service (dozwolonych aplikacji klienckich) oraz rejestracji aplikacji (autoryzowanych aplikacji klienckich w Publikowanie interfejsu API).
  • Wartość zakresu w ustawieniu aplikacji odpowiada dokładnie tym, co zostało zdefiniowane w rejestracji aplikacji.