Ochrana rozhraní API ve službě Azure API Management s využitím ověřování OAuth 2.0 a Microsoft Entra ID

PLATÍ PRO: Všechny úrovně služby API Management

V tomto článku se dozvíte základní kroky konfigurace instance služby Azure API Management pro ochranu rozhraní API pomocí protokolu OAuth 2.0 s ID Microsoft Entra.

Koncepční přehled autorizace rozhraní API najdete v tématu Ověřování a autorizace pro rozhraní API ve službě API Management.

Požadavky

Před provedením kroků v tomto článku musíte mít:

  • Instance služby API Management
  • Publikované rozhraní API využívající instanci služby API Management
  • Tenant Microsoft Entra

Přehled

Pomocí těchto kroků můžete chránit rozhraní API ve službě API Management pomocí autorizace OAuth 2.0 s ID Microsoft Entra.

  1. Zaregistrujte aplikaci (v tomto článku se nazývá back-endová aplikace ) v ID Microsoft Entra, abyste ochránili přístup k rozhraní API.

    Pro přístup k rozhraní API budou uživatelé nebo aplikace získávat a prezentovat platný token OAuth, který této aplikaci uděluje přístup s jednotlivými požadavky rozhraní API.

  2. Nakonfigurujte zásadu validate-jwt ve službě API Management tak, aby ověřila token OAuth uvedený v každém příchozím požadavku rozhraní API. Platné požadavky je možné předat do rozhraní API.

Podrobnosti o tocích autorizace OAuth a o tom, jak vygenerovat požadované tokeny OAuth, jsou nad rámec tohoto článku. Samostatná klientská aplikace se obvykle používá k získání tokenů z ID Microsoft Entra, které autorizují přístup k rozhraní API. Odkazy na další informace najdete v dalších krocích.

Registrace aplikace v Microsoft Entra ID představující rozhraní API

Pomocí webu Azure Portal chraňte rozhraní API pomocí ID Microsoft Entra tím, že nejprve zaregistrujete aplikaci, která představuje rozhraní API.

Podrobnosti o registraci aplikace najdete v tématu Rychlý start: Konfigurace aplikace pro zveřejnění webového rozhraní API.

  1. Na webu Azure Portal vyhledejte a vyberte Registrace aplikací.

  2. Vyberte Nová registrace.

  3. Jakmile se zobrazí stránka Registrovat aplikaci, zadejte informace o registraci aplikace:

    • V části Název zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace, například back-endové aplikaci.
    • V části Podporované typy účtů vyberte možnost, která vyhovuje vašemu scénáři.
  4. Oddíl identifikátoru URI přesměrování ponechte prázdný.

  5. Výběrem možnosti Registrovat aplikaci vytvořte.

  6. Na stránce Přehled aplikace najděte hodnotu ID aplikace (klienta) a poznamenejte si ji pro pozdější použití.

  7. V části Správa boční nabídky vyberte Zveřejnit rozhraní API a nastavte identifikátor URI ID aplikace na výchozí hodnotu. Pokud vyvíjíte samostatnou klientskou aplikaci pro získání tokenů OAuth 2.0 pro přístup k back-endové aplikaci, poznamenejte si tuto hodnotu pro pozdější použití.

  8. Výběrem tlačítka Přidat obor zobrazte stránku Přidat obor:

    1. Zadejte nový název oboru, Správa zobrazovaný název souhlasu a Správa popis souhlasu.
    2. Ujistěte se, že je vybraný stav povoleného oboru.
  9. Výběrem tlačítka Přidat obor vytvořte obor.

  10. Opakováním předchozích dvou kroků přidejte všechny obory podporované vaším rozhraním API.

  11. Jakmile se obory vytvoří, poznamenejte si je pro pozdější použití.

Konfigurace zásad ověřování JWT pro předběžné autorizace požadavků

Následující ukázková zásada při přidání do oddílu <inbound> zásad zkontroluje hodnotu deklarace identity cílové skupiny v přístupovém tokenu získaném z ID Microsoft Entra, které se zobrazí v hlavičce Autorizace. Pokud token není platný, vrátí chybovou zprávu. Nakonfigurujte tuto zásadu v oboru zásad, který je vhodný pro váš scénář.

  • V adrese openid-config URL aad-tenant je ID tenanta v Microsoft Entra ID. Tuto hodnotu najdete na webu Azure Portal, například na stránce Přehled vašeho prostředku Microsoft Entra. Uvedený příklad předpokládá aplikaci Microsoft Entra s jedním tenantem a koncový bod konfigurace v2.
  • Hodnota claim je ID klienta back-endové aplikace, kterou jste zaregistrovali v Microsoft Entra ID.
<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>

Poznámka:

Předchozí openid-config adresa URL odpovídá koncovému bodu v2. Pro koncový bod v1 openid-config použijte https://login.microsoftonline.com/{aad-tenant}/.well-known/openid-configuration.

Informace o konfiguraci zásad najdete v tématu Nastavení nebo úprava zásad. Další přizpůsobení ověřování JWT najdete v referenční dokumentaci validate-jwt . K ověření JWT poskytované službou Microsoft Entra poskytuje validate-azure-ad-token služba API Management také zásady.

Pracovní postup autorizace

  1. Uživatel nebo aplikace získá token z ID Microsoft Entra s oprávněními, která udělují přístup k back-endové aplikaci.

  2. Token se přidá do autorizační hlavičky požadavků rozhraní API do služby API Management.

  3. Služba API Management token ověří pomocí validate-jwt zásad.

    • Pokud požadavek nemá platný token, služba API Management ho zablokuje.

    • Pokud je požadavek doprovázen platným tokenem, může brána požadavek předat do rozhraní API.

Další kroky