Udostępnij przez


Konfigurowanie wbudowanej autoryzacji serwera MCP (wersja zapoznawcza)

Uwierzytelnianie usługi App Service umożliwia kontrolowanie dostępu do serwera protokołu MCP (Model Context Protocol), wymagając od klientów MCP uwierzytelniania za pomocą dostawcy tożsamości. Aplikację można dostosować do specyfikacji autoryzacji serwera MCP , postępując zgodnie z instrukcjami w tym artykule.

Ważne

Autoryzacja serwera MCP definiuje dostęp do serwera i nie zapewnia szczegółowej kontroli poszczególnych narzędzi MCP ani innych konstrukcji.

Skonfiguruj dostawcę tożsamości

Konfigurowanie uwierzytelniania usługi App Service przy użyciu dostawcy tożsamości. Rejestracja dostawcy tożsamości powinna być unikatowa dla serwera MCP. Nie używaj ponownie istniejącej rejestracji z innego składnika aplikacji.

Podczas tworzenia rejestracji zanotuj zakresy zdefiniowane w rejestracji lub w dokumentacji dostawcy tożsamości.

Konfigurowanie metadanych chronionych zasobów (wersja zapoznawcza)

Autoryzacja serwera MCP wymaga, aby host serwera posiadał metadane zasobów chronionych (PRM). Obsługa PRM z uwierzytelnianiem App Service jest obecnie dostępna w wersji zapoznawczej.

Aby skonfigurować PRM dla serwera MCP, ustaw WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES na listę zakresów oddzieloną przecinkami dla aplikacji. Wymagane zakresy są definiowane w ramach rejestracji aplikacji lub udokumentowane przez dostawcę tożsamości. Jeśli na przykład użyłeś dostawcy tożsamości Microsoft Entra ID i pozwoliłeś usłudze App Service utworzyć rejestrację, został utworzony domyślny zakres api://<client-id>/user_impersonation. Należy ustawić WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES na tę wartość.

Zagadnienia dotyczące klienta MCP

Aby zalogować użytkowników, klient MCP musi być zarejestrowany u dostawcy tożsamości. Niektórzy dostawcy obsługują dynamiczną rejestrację klienta (DCR), ale wielu z nich nie, w tym Microsoft Entra ID. Jeśli DCR nie jest dostępne, klient musi być wstępnie skonfigurowany z identyfikatorem klienta. Zapoznaj się z dokumentacją klienta lub zestawu SDK klienta, aby dowiedzieć się, jak podać identyfikator klienta.

Jeśli używasz identyfikatora Entra firmy Microsoft, możesz określić znane aplikacje klienckie i oznaczyć je jako wstępnie uwierzytelnione w celu uzyskania dostępu. W miarę możliwości zaleca się wstępne uwierzytelnianie. Bez wstępnego uwierzytelniania użytkownicy lub administrator muszą wyrazić zgodę na rejestrację serwera MCP i wszelkie wymagane uprawnienia.

W przypadku scenariuszy zgody użytkownika tworzenie zgody polega na tym, że klient MCP używa logowania interaktywnego do wyświetlenia monitu o wyrażenie zgody. Niektórzy klienci MCP mogą nie wyświetlać interakcyjnego logowania. Jeśli na przykład tworzysz narzędzie MCP do użycia przez narzędzie GitHub Copilot w programie Visual Studio Code, klient próbuje użyć kontekstu zalogowanego użytkownika i nie wyświetli monitu o wyrażenie zgody. W takich przypadkach wstępne uwierzytelnianie aplikacji klienckiej jest wymagane, aby uniknąć problemów ze zgodą.

Na potrzeby tworzenia i testowania możesz samodzielnie utworzyć zgodę użytkownika, logując się do aplikacji bezpośrednio w przeglądarce. Przejście do <your-app-url>/.auth/login/aad inicjuje przepływ logowania i, w razie potrzeby, prosi o zgodę. Następnie możesz spróbować zalogować się z innego klienta.

Zagadnienia dotyczące serwera MCP

Uwierzytelnianie usługi App Service weryfikuje tokeny udostępniane przez klientów MCP i stosuje wszelkie skonfigurowane zasady autoryzacji przed odpowiedzią na żądanie inicjowania MCP. Może być konieczne zaktualizowanie reguł autoryzacji dla scenariusza MCP. Jeśli na przykład użyto dostawcy identyfikatora Entra firmy Microsoft i pozwolisz usłudze App Service utworzyć rejestrację, domyślne zasady zezwalają tylko na tokeny uzyskane przez samą aplikację. W związku z tym klient MCP należy dodać do listy dozwolonych aplikacji w konfiguracji uwierzytelniania. Aby uzyskać więcej informacji, zobacz Używanie wbudowanych zasad autoryzacji.

Struktury serwerów MCP często oddzielają transport, ale w niektórych przypadkach mogą uwidocznić bazowy kontekst HTTP. Gdy kontekst HTTP jest dostępny, możesz uzyskać dostęp do oświadczeń użytkowników i innych informacji uwierzytelniania udostępnianych przez uwierzytelnianie usługi App Service.

Ostrzeżenie

Token używany do autoryzacji serwera MCP jest przeznaczony do reprezentowania dostępu do serwera MCP, a nie do zasobu podrzędnego. Scenariusze przekazywania, w których serwer przekazuje token, tworzą luki w zabezpieczeniach, więc unikaj tych wzorców. Jeżeli potrzebujesz uzyskać dostęp do zasobu podrzędnego, uzyskaj nowy token przez mechanizm delegowania działającego w imieniu użytkownika lub inną metodę jawnego delegowania.