Sdílet prostřednictvím


Konfigurace vlastního zprostředkovatele deklarací identity pro událost vystavování tokenů

Tento článek popisuje, jak nakonfigurovat vlastního zprostředkovatele deklarací identity pro počáteční událost vystavení tokenu. Pomocí existujícího rozhraní REST API služby Azure Functions zaregistrujete vlastní rozšíření ověřování a přidáte atributy, které očekáváte, že se parsuje z rozhraní REST API. Pokud chcete otestovat rozšíření vlastního ověřování, zaregistrujete ukázkovou openID Připojení aplikaci, abyste získali token a zobrazili deklarace identity.

Požadavky

  • Předplatné Azure s možností vytvářet azure Functions. Pokud nemáte existující účet Azure, zaregistrujte si bezplatnou zkušební verzi nebo při vytváření účtu využijte výhody předplatného sady Visual Studio.
  • Funkce triggeru HTTP nakonfigurovaná pro událost vystavování tokenů nasazenou do Azure Functions. Pokud ho nemáte, postupujte podle pokynů v tématu Vytvoření rozhraní REST API pro počáteční událost vystavení tokenu ve službě Azure Functions.
  • Základní znalost konceptů popsaných v přehledu rozšíření vlastního ověřování
  • Tenant Microsoft Entra ID. K tomuto průvodci postupy můžete použít tenanta zákazníka nebo pracovní síly.
    • Pro externí tenanty použijte tok uživatele pro registraci a přihlášení.

Krok 1: Registrace vlastního rozšíření ověřování

Teď nakonfigurujete vlastní rozšíření ověřování, které bude používat ID Microsoft Entra k volání funkce Azure. Rozšíření vlastního ověřování obsahuje informace o koncovém bodu rozhraní REST API, deklarace identity, které parsuje z rozhraní REST API, a o tom, jak se ověřit v rozhraní REST API. Podle těchto kroků zaregistrujte vlastní rozšíření ověřování do aplikace Azure Functions.

Poznámka:

Můžete mít maximálně 100 vlastních zásad rozšíření.

Registrace vlastního rozšíření ověřování

  1. Přihlaste se k webu Azure Portal jako alespoň aplikační Správa istrator a ověřovací Správa istrator.
  2. Vyhledejte a vyberte Microsoft Entra ID a vyberte Podnikové aplikace.
  3. Vyberte Vlastní rozšíření ověřování a pak vyberte Vytvořit vlastní rozšíření.
  4. V části Základy vyberte typ události TokenIssuanceStart a vyberte Další.
  5. V konfiguraci koncového bodu vyplňte následující vlastnosti:
    • Název – název vlastního rozšíření ověřování. Například událost vystavení tokenu.
    • Cílová adresa URL{Function_Url} adresa URL vaší funkce Azure. Přejděte na stránku Přehled aplikace Azure Functions a pak vyberte funkci, kterou jste vytvořili. Na stránce Přehled funkce vyberte Získat adresu URL funkce a pomocí ikony kopírování zkopírujte adresu URL customauthenticationextension_extension (systémový klíč).
    • Popis – popis vlastních rozšíření ověřování.
  6. Vyberte Další.
  7. V části Ověřování rozhraní API vyberte možnost Vytvořit novou registraci aplikace a vytvořte registraci aplikace, která představuje vaši aplikaci funkcí.
  8. Pojmenujte aplikaci, například rozhraní API událostí ověřování azure Functions.
  9. Vyberte Další.
  10. Do deklarací identity zadejte atributy, které očekáváte, že se vaše vlastní rozšíření ověřování parsuje z rozhraní REST API a sloučí se s tokenem. Přidejte následující deklarace identity:
    • dateOfBirth
    • customRoles
    • apiVersion
    • correlationId
  11. Vyberte Další a pak Vytvořte, čímž zaregistrujete vlastní rozšíření ověřování a přidruženou registraci aplikace.
  12. Poznamenejte si ID aplikace v rámci ověřování rozhraní API, které je potřeba ke konfiguraci ověřování pro funkci Azure Ve vaší aplikaci Azure Functions.

Po vytvoření vlastního rozšíření ověřování musíte udělit oprávnění rozhraní API. Rozšíření vlastního ověřování používá client_credentials k ověření v aplikaci Azure Function App pomocí Receive custom authentication extension HTTP requests oprávnění.

  1. Otevřete stránku Přehled nového rozšíření pro vlastní ověřování. Poznamenejte si ID aplikace v rámci ověřování rozhraní API, protože bude potřeba při přidávání zprostředkovatele identity.

  2. V části Ověřování rozhraní API vyberte Udělit oprávnění.

  3. Otevře se nové okno a po přihlášení požádá o oprávnění k příjmu vlastních požadavků HTTP rozšíření ověřování. To umožňuje, aby se vlastní rozšíření ověřování ověřilo ve vašem rozhraní API. Zvolte Přijmout.

    Snímek obrazovky znázorňující udělení souhlasu správce

Krok 2: Konfigurace openID Připojení aplikace pro příjem obohacených tokenů

Pokud chcete získat token a otestovat vlastní rozšíření ověřování, můžete použít https://jwt.ms aplikaci. Jedná se o webovou aplikaci vlastněnou Microsoftem, která zobrazuje dekódovaný obsah tokenu (obsah tokenu nikdy neopustí váš prohlížeč).

2.1 Registrace testovací webové aplikace

Pokud chcete zaregistrovat jwt.ms webovou aplikaci, postupujte takto:

  1. Na domovské stránce webu Azure Portal vyberte ID Microsoft Entra.

  2. Vyberte Registrace aplikací Nová> registrace.

  3. Zadejte název aplikace. Například Moje testovací aplikace.

  4. V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.

  5. V rozevíracím seznamu Vybrat platformu v identifikátoru URI přesměrování vyberte Web a zadejte https://jwt.ms do textového pole adresa URL.

  6. Výběrem možnosti Zaregistrovat dokončete registraci aplikace.

    Snímek obrazovky, který ukazuje, jak vybrat podporovaný typ účtu a identifikátor URI přesměrování

  7. Na stránce Přehled registrace aplikace zkopírujte ID aplikace (klienta). ID aplikace se označuje jako {App_to_enrich_ID} v dalších krocích. V Microsoft Graphu se na ni odkazuje vlastnost appId .

    Snímek obrazovky, který ukazuje, jak zkopírovat ID aplikace

2.2 Povolení implicitního toku

Testovací aplikace jwt.ms používá implicitní tok. Povolení implicitního toku v registraci moje testovací aplikace :

  1. V části Spravovat vyberte Ověřování.
  2. V části Implicitní udělení a hybridní toky zaškrtněte políčko Tokeny ID (používané pro implicitní a hybridní toky).
  3. Zvolte Uložit.

2.3 Povolení aplikace pro zásady mapování deklarací identity

Zásada mapování deklarací identity slouží k výběru atributů vrácených z vlastního rozšíření ověřování, které se mapují do tokenu. Pokud chcete povolit rozšíření tokenů, musíte explicitně povolit registraci aplikace, aby přijímala mapované deklarace identity:

  1. V registraci aplikace My Test vyberte v části Spravovat manifest.
  2. V manifestu acceptMappedClaims vyhledejte atribut a nastavte hodnotu na true.
  3. Nastavte accessTokenAcceptedVersion na 2.
  4. Změny uložíte tlačítkem Uložit.

Následující fragment kódu JSON ukazuje, jak tyto vlastnosti nakonfigurovat.

{
	"id": "22222222-0000-0000-0000-000000000000",
	"acceptMappedClaims": true,
	"accessTokenAcceptedVersion": 2,  
    ...
}

Upozorňující

Nenastavujte acceptMappedClaims vlastnost true pro aplikace s více tenanty, což může umožnit škodlivým hercům vytvářet zásady mapování deklarací identity pro vaši aplikaci. Místo toho nakonfigurujte vlastní podpisový klíč.

Pokračujte dalším krokem a přiřaďte k aplikaci vlastního zprostředkovatele deklarací identity.

Krok 3: Přiřazení vlastního zprostředkovatele deklarací identity k aplikaci

Aby se tokeny vystavily s deklaracemi příchozími z rozšíření vlastního ověřování, musíte k aplikaci přiřadit vlastního zprostředkovatele deklarací identity. To je založeno na cílové skupině tokenů, takže zprostředkovatel musí být přiřazen klientské aplikaci, aby přijímal deklarace identity v tokenu ID, a k aplikaci prostředků pro příjem deklarací identity v přístupovém tokenu. Vlastní zprostředkovatel deklarací identity spoléhá na vlastní rozšíření ověřování nakonfigurované pro spuštění naslouchacího procesu vystavování tokenů událostí. Můžete zvolit, jestli jsou všechny deklarace identity nebo podmnožina deklarací identity z vlastního zprostředkovatele deklarací mapovány do tokenu.

Poznámka:

Můžete vytvořit pouze 250 jedinečných přiřazení mezi aplikacemi a vlastními rozšířeními. Pokud chcete použít stejné volání vlastního rozšíření pro více aplikací, doporučujeme k vytváření naslouchacích procesů pro více aplikací použít rozhraní Microsoft Graph API authenticationEventListeners . To se nepodporuje na webu Azure Portal.

Pomocí následujícího postupu připojte aplikaci My Test k vlastnímu rozšíření ověřování:

Přiřazení vlastního rozšíření ověřování jako vlastního zdroje zprostředkovatele deklarací identity;

  1. Na domovské stránce webu Azure Portal vyberte ID Microsoft Entra.

  2. VybertePodnikové aplikace a pak v části Spravovat vyberte Všechny aplikace. V seznamu vyhledejte a vyberte Moje testovací aplikace .

  3. Na stránce Přehled aplikace My Test přejděte na Spravovat a vyberte Jednotné přihlašování.

  4. V části Atributy a deklarace identity vyberte Upravit.

    Snímek obrazovky znázorňující konfiguraci deklarací identity aplikací

  5. Rozbalte nabídku Upřesnit nastavení.

  6. Vedle vlastního zprostředkovatele deklarací identity vyberte Konfigurovat.

  7. Rozbalte rozevírací seznam Vlastní zprostředkovatel deklarací identity a vyberte událost vystavení tokenu, kterou jste vytvořili dříve.

  8. Zvolte Uložit.

Dále přiřaďte atributy z vlastního zprostředkovatele deklarací identity, které by se měly vydat do tokenu jako deklarace identity:

  1. Vyberte Přidat novou deklaraci identity a přidejte novou deklaraci identity. Zadejte název deklarace identity, kterou chcete vystavit, například dateOfBirth.

  2. V části Zdroj vyberte Atribut a zvolte customClaimsProvider.dateOfBirth z rozevíracího seznamu Atribut Source.

    Snímek obrazovky, který ukazuje, jak přidat mapování deklarací identity do aplikace

  3. Zvolte Uložit.

  4. Tento proces opakujte, pokud chcete přidat atributy customClaimsProvider.customRoles, customClaimsProvider.apiVersion a customClaimsProvider.correlationId a odpovídající název. Je vhodné se shodovat s názvem deklarace identity s názvem atributu.

Krok 4: Ochrana funkce Azure

Rozšíření vlastního ověřování Microsoft Entra používá k získání přístupového tokenu odeslaného v hlavičce HTTP Authorization do vaší funkce Azure server tok serveru. Při publikování funkce do Azure, zejména v produkčním prostředí, je potřeba ověřit token odeslaný v autorizační hlavičce.

Pokud chcete chránit funkci Azure, pomocí těchto kroků integrujte ověřování Microsoft Entra, abyste mohli ověřovat příchozí tokeny s registrací aplikace rozhraní API pro události ověřování azure Functions. Na základě typu tenanta zvolte jednu z následujících karet.

Poznámka:

Pokud je aplikace funkcí Azure hostovaná v jiném tenantovi Azure, než je tenant, ve kterém je zaregistrované vlastní rozšíření ověřování, zvolte kartu Open ID Připojení.

4.1 Použití zprostředkovatele identity Microsoft Entra

Pomocí následujícího postupu přidejte Microsoft Entra jako zprostředkovatele identity do vaší aplikace Funkcí Azure.

  1. Na webu Azure Portal vyhledejte a vyberte aplikaci funkcí, kterou jste publikovali dříve.

  2. V části Nastavení vyberte Ověřování.

  3. Vyberte Přidat zprostředkovatele identity.

  4. Jako zprostředkovatele identity vyberte Microsoft .

  5. Jako typ tenanta vyberte Pracovní síly .

  6. V části Registrace aplikace vyberte Možnost Vybrat existující registraci aplikace v tomto adresáři pro typ registrace aplikace a vyberte registraci aplikace API událostí ověřování služby Azure Functions, kterou jste vytvořili při registraci vlastního zprostředkovatele deklarací identity.

  7. Zadejte následující adresu URL vystavitele, https://login.microsoftonline.com/{tenantId}/v2.0kde {tenantId} je ID tenanta vašeho tenanta pracovních sil.

  8. V části Neověřené požadavky vyberte jako zprostředkovatele identity http 401 Neautorizováno .

  9. Zrušte výběr možnosti Úložiště tokenů.

  10. Výběrem možnosti Přidat přidáte ověřování do funkce Azure Functions.

    Snímek obrazovky, který ukazuje, jak přidat ověřování do aplikace funkcí v tenantovi pracovních sil

4.2 Použití zprostředkovatele identity OpenID Připojení

Pokud jste nakonfigurovali zprostředkovatele identity Microsoftu, přeskočte tento krok. Jinak platí, že pokud je funkce Azure Functions hostovaná v jiném tenantovi, než je tenant, ve kterém je vaše vlastní rozšíření ověřování zaregistrované, postupujte podle těchto kroků k ochraně vaší funkce:

Vytvoření tajného klíče klienta

  1. Na domovské stránce webu Azure Portal vyberte ID> Microsoft Entra Registrace aplikací.
  2. Vyberte registraci aplikace API pro ověřování azure Functions, kterou jste vytvořili dříve.
  3. Vyberte Certifikáty a tajné>klíče>klienta Nové tajné klíče klienta.
  4. Vyberte vypršení platnosti tajného kódu nebo zadejte vlastní životnost, přidejte popis a vyberte Přidat.
  5. Poznamenejte si hodnotu tajného kódu pro použití v kódu klientské aplikace. Po opuštění této stránky se tento tajný kód už nikdy nezobrazí.

Přidejte zprostředkovatele identity OpenID Připojení do aplikace Funkcí Azure.

  1. Vyhledejte a vyberte aplikaci funkcí, kterou jste publikovali dříve.

  2. V části Nastavení vyberte Ověřování.

  3. Vyberte Přidat zprostředkovatele identity.

  4. Jako zprostředkovatele identity vyberte OpenID Připojení.

  5. Zadejte název, například ID Společnosti Contoso Microsoft Entra.

  6. Pod položkou Metadata zadejte následující adresu URL adresy URL dokumentu. Nahraďte ID tenanta {tenantId} Microsoft Entra.

    https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
    
  7. V rámci registrace aplikace zadejte ID aplikace (ID klienta) registrace aplikace API pro ověřování azure Functions, kterou jste vytvořili dříve.

  8. Vraťte se do funkce Azure Functions v rámci registrace aplikace a zadejte tajný klíč klienta.

  9. Zrušte výběr možnosti Úložiště tokenů.

  10. Vyberte Přidat a přidejte zprostředkovatele identity OpenID Připojení.

Krok 5: Testování aplikace

Pokud chcete otestovat vlastního zprostředkovatele deklarací identity, postupujte takto:

  1. Otevřete nový privátní prohlížeč a pomocí následující adresy URL přejděte a přihlaste se.

    https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
    
  2. Nahraďte {tenantId} ID tenanta, název tenanta nebo jeden z ověřených názvů domén. Například contoso.onmicrosoft.com.

  3. Nahraďte {App_to_enrich_ID} ID klienta aplikace My Test.

  4. Po přihlášení se zobrazí dekódovaný token na adrese https://jwt.ms. Ověřte, že deklarace identity z funkce Azure Functions jsou uvedeny v dekódovaném tokenu, dateOfBirthnapříklad .

Viz také