Ochrona interfejsu API w usłudze Azure API Management przy użyciu autoryzacji protokołu OAuth 2.0 za pomocą usługi Microsoft Entra ID
DOTYCZY: Wszystkie warstwy usługi API Management
W tym artykule przedstawiono ogólne kroki konfigurowania wystąpienia usługi Azure API Management w celu ochrony interfejsu API przy użyciu protokołu OAuth 2.0 z identyfikatorem Entra firmy Microsoft.
Aby zapoznać się z koncepcyjnym omówieniem autoryzacji interfejsu API, zobacz Uwierzytelnianie i autoryzacja interfejsów API w usłudze API Management.
Wymagania wstępne
Przed wykonaniem kroków opisanych w tym artykule musisz mieć następujące elementy:
- Wystąpienie usługi API Management
- Opublikowany interfejs API korzystający z wystąpienia usługi API Management
- Dzierżawa Microsoft Entra
Omówienie
Wykonaj następujące kroki, aby chronić interfejs API w usłudze API Management przy użyciu autoryzacji OAuth 2.0 z identyfikatorem Entra firmy Microsoft.
Zarejestruj aplikację (nazywaną aplikacją zaplecza w tym artykule) w usłudze Microsoft Entra ID, aby chronić dostęp do interfejsu API.
Aby uzyskać dostęp do interfejsu API, użytkownicy lub aplikacje uzyskają i przedstawią prawidłowy token OAuth, który udziela dostępu do tej aplikacji przy użyciu każdego żądania interfejsu API.
Skonfiguruj zasady validate-jwt w usłudze API Management, aby zweryfikować token OAuth przedstawiony w każdym przychodzącym żądaniu interfejsu API. Prawidłowe żądania można przekazać do interfejsu API.
Szczegółowe informacje o przepływach autoryzacji protokołu OAuth i sposobie generowania wymaganych tokenów OAuth wykraczają poza zakres tego artykułu. Zazwyczaj oddzielna aplikacja kliencka służy do uzyskiwania tokenów od identyfikatora Firmy Microsoft Entra, który autoryzuje dostęp do interfejsu API. Aby uzyskać linki do dodatkowych informacji, zobacz Następne kroki.
Rejestrowanie aplikacji w identyfikatorze Entra firmy Microsoft w celu reprezentowania interfejsu API
Korzystając z witryny Azure Portal, chroń interfejs API przy użyciu identyfikatora Entra firmy Microsoft, rejestrując najpierw aplikację reprezentującą interfejs API.
Aby uzyskać szczegółowe informacje na temat rejestracji aplikacji, zobacz Szybki start: konfigurowanie aplikacji w celu uwidocznienia internetowego interfejsu API.
W witrynie Azure Portal wyszukaj i wybierz pozycję Rejestracje aplikacji.
Wybierz opcjęNowa rejestracja.
Gdy pojawi się strona Rejestrowanie aplikacji, wprowadź informacje rejestracyjne aplikacji:
- W sekcji Nazwa wprowadź zrozumiałą nazwę aplikacji, która będzie wyświetlana użytkownikom aplikacji, takiej jak backend-app.
- W sekcji Obsługiwane typy kont wybierz opcję, która odpowiada Twojemu scenariuszowi.
Pozostaw pustą sekcję Identyfikator URI przekierowania.
Wybierz pozycję Zarejestruj, aby utworzyć aplikację.
Na stronie Przegląd aplikacji znajdź wartość Identyfikator aplikacji (klienta) i zapisz ją później.
W sekcji Zarządzanie menu bocznego wybierz pozycję Uwidacznij interfejs API i ustaw identyfikator URI identyfikatora aplikacji z wartością domyślną. Jeśli tworzysz oddzielną aplikację kliencką w celu uzyskania tokenów OAuth 2.0 na potrzeby dostępu do aplikacji zaplecza, zapisz tę wartość dla późniejszej wersji.
Wybierz przycisk Dodaj zakres, aby wyświetlić stronę Dodawanie zakresu:
- Wprowadź nową nazwę zakresu, Administracja nazwę wyświetlaną zgody i Administracja opis zgody.
- Upewnij się, że wybrano stan Włączone zakres.
Wybierz przycisk Dodaj zakres, aby utworzyć zakres.
Powtórz dwa poprzednie kroki, aby dodać wszystkie zakresy obsługiwane przez interfejs API.
Po utworzeniu zakresów zanotuj je do późniejszego użycia.
Konfigurowanie zasad weryfikacji JWT w celu wstępnego autoryzowania żądań
Poniższe przykładowe zasady po dodaniu do <inbound>
sekcji zasad sprawdzają wartość oświadczenia odbiorców w tokenie dostępu uzyskanym z identyfikatora Entra firmy Microsoft przedstawionego w nagłówku Autoryzacja. Zwraca komunikat o błędzie, jeśli token jest nieprawidłowy. Skonfiguruj te zasady w zakresie zasad, który jest odpowiedni dla danego scenariusza.
- W adresie
openid-config
URLaad-tenant
jest to identyfikator dzierżawy w identyfikatorze Entra firmy Microsoft. Znajdź tę wartość w witrynie Azure Portal, na przykład na stronie Przegląd zasobu Microsoft Entra. W przedstawionym przykładzie przyjęto założenie, że aplikacja Firmy Microsoft Entra z jedną dzierżawą i punkt końcowy konfiguracji w wersji 2. - Wartość parametru
claim
to identyfikator klienta aplikacji zaplecza zarejestrowanej w identyfikatorze Entra firmy Microsoft.
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<openid-config url="https://login.microsoftonline.com/{aad-tenant}/v2.0/.well-known/openid-configuration" />
<audiences>
<audience>{audience-value - (ex:api://guid)}</audience>
</audiences>
<issuers>
<issuer>{issuer-value - (ex: https://sts.windows.net/{tenant id}/)}</issuer>
</issuers>
<required-claims>
<claim name="aud">
<value>{backend-app-client-id}</value>
</claim>
</required-claims>
</validate-jwt>
Uwaga
Powyższy openid-config
adres URL odpowiada punktowi końcowemu w wersji 2. W przypadku punktu końcowego w wersji 1 openid-config
użyj polecenia https://login.microsoftonline.com/{aad-tenant}/.well-known/openid-configuration
.
Aby uzyskać informacje na temat konfigurowania zasad, zobacz Ustawianie lub edytowanie zasad. Zapoznaj się z dokumentacją validate-jwt , aby uzyskać więcej informacji na temat dostosowywania weryfikacji JWT. Aby zweryfikować JWT, który został dostarczony przez usługę Microsoft Entra, usługa API Management udostępnia validate-azure-ad-token
również zasady.
Przepływ pracy autoryzacji
Użytkownik lub aplikacja uzyskuje token z identyfikatora Entra firmy Microsoft z uprawnieniami, które udzielają dostępu do aplikacji zaplecza.
Token jest dodawany w nagłówku Autoryzacja żądań interfejsu API do usługi API Management.
Usługa API Management weryfikuje token przy użyciu
validate-jwt
zasad.Jeśli żądanie nie ma prawidłowego tokenu, usługa API Management blokuje je.
Jeśli do żądania dołączy prawidłowy token, brama może przekazać żądanie do interfejsu API.
Następne kroki
Aby dowiedzieć się więcej na temat tworzenia aplikacji i implementowania protokołu OAuth 2.0, zobacz Przykłady kodu firmy Microsoft Entra.
Aby zapoznać się z końcowym przykładem konfigurowania autoryzacji użytkownika OAuth 2.0 w portalu deweloperów usługi API Management, zobacz Jak autoryzować konsolę testową portalu deweloperów przez skonfigurowanie autoryzacji użytkownika OAuth 2.0.
Dowiedz się więcej o identyfikatorze Entra firmy Microsoft i OAuth2.0.
Aby uzyskać inne sposoby zabezpieczania usługi zaplecza, zobacz Wzajemne uwierzytelnianie certyfikatów.