Udostępnij za pośrednictwem


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.

  1. 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.

  2. 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.

  1. W witrynie Azure Portal wyszukaj i wybierz pozycję Rejestracje aplikacji.

  2. Wybierz opcjęNowa rejestracja.

  3. 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.
  4. Pozostaw pustą sekcję Identyfikator URI przekierowania.

  5. Wybierz pozycję Zarejestruj, aby utworzyć aplikację.

  6. Na stronie Przegląd aplikacji znajdź wartość Identyfikator aplikacji (klienta) i zapisz ją później.

  7. 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.

  8. Wybierz przycisk Dodaj zakres, aby wyświetlić stronę Dodawanie zakresu:

    1. Wprowadź nową nazwę zakresu, Administracja nazwę wyświetlaną zgody i Administracja opis zgody.
    2. Upewnij się, że wybrano stan Włączone zakres.
  9. Wybierz przycisk Dodaj zakres, aby utworzyć zakres.

  10. Powtórz dwa poprzednie kroki, aby dodać wszystkie zakresy obsługiwane przez interfejs API.

  11. 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 URL aad-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

  1. Użytkownik lub aplikacja uzyskuje token z identyfikatora Entra firmy Microsoft z uprawnieniami, które udzielają dostępu do aplikacji zaplecza.

  2. Token jest dodawany w nagłówku Autoryzacja żądań interfejsu API do usługi API Management.

  3. 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