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.
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.
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.
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, 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.
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, Správa zobrazovaný název souhlasu a Správa popis souhlasu.
- 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-config
URLaad-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
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.
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-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
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ů.