Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Všechny úrovně služby API Management
V tomto článku se dozvíte základní kroky ke konfiguraci 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
Než budete postupovat podle 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.
Zaregistrujte aplikaci (v tomto článku se nazývá back-endová aplikace ) v MICROSOFT Entra ID.
Pro přístup k rozhraní API musí uživatelé nebo aplikace získat a předložit platný token OAuth, který této aplikaci uděluje přístup s každou žádostí rozhraní API.
Nakonfigurujte zásady validate-jwt ve službě API Management. Tato zásada ověří 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 části související obsah .
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.
Na webu Azure Portal vyhledejte a vyberte Registrace aplikací.
Vyberte Nová registrace.
Jakmile se zobrazí stránka Registrovat aplikaci, zadejte informace o registraci aplikace:
- V části Název zadejte smysluplný název aplikace, například back-endovou aplikaci. Tento název se zobrazí uživatelům aplikace.
- V části Podporované typy účtů vyberte možnost, která vyhovuje vašemu scénáři.
Oddíl identifikátoru URI přesměrování ponechte prázdný.
Výběrem možnosti Registrovat aplikaci vytvořte.
Na stránce Přehled aplikace najděte hodnotu ID aplikace (klienta) a poznamenejte si ji pro pozdější použití.
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í.
Výběrem tlačítka Přidat obor zobrazte stránku Přidat obor:
- Zadejte nový název oboru, zobrazovaný název souhlasu správce a popis souhlasu správce.
- Ujistěte se, že je vybraný stav povoleného oboru.
Výběrem tlačítka Přidat obor vytvořte obor.
Opakováním předchozích dvou kroků přidejte všechny obory podporované vaším rozhraním API.
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-configURLaad-tenantje 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
claimje 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
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. Pokud používáte koncový bod v2, ujistěte se, že
accessTokenAcceptedVersionje vlastnost nastavená v2manifestu aplikace back-endové aplikace a jakékoli klientské aplikace, kterou nakonfigurujete.Token se přidá do autorizační hlavičky požadavků rozhraní API do služby API Management.
Služba API Management token ověří pomocí
validate-jwtzásad.Pokud požadavek nemá platný token, služba API Management ho zablokuje.
Pokud požadavek obsahuje platný token, může brána požadavek předat do rozhraní API.
Související obsah
Další informace o tom, jak sestavit aplikaci a implementovat OAuth 2.0, najdete v ukázkách kódu Microsoft Entra.
Kompletní příklad konfigurace autorizace uživatelů OAuth 2.0 na portálu pro vývojáře služby API Management najdete v tématu Autorizace testovací konzoly portálu pro vývojáře konfigurací autorizace uživatele OAuth 2.0.
Přečtěte si další informace o Microsoft Entra ID a OAuth2.0.
Další způsoby zabezpečení back-endové služby najdete v tématu Vzájemné ověřování certifikátů.