Sdílet prostřednictvím


Zabezpečení rozhraní API služby Azure API Management pomocí Azure AD B2C

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Zjistěte, jak omezit přístup k rozhraní API služby Azure API Management na klienty, kteří se ověřili pomocí Azure Active Directory B2C (Azure AD B2C). Postupujte podle pokynů v tomto článku a vytvořte a otestujte příchozí zásady ve službě Azure API Management, které omezují přístup jenom na požadavky, které obsahují platný přístupový token vydaný službou Azure AD B2C.

Požadavky

Než začnete, ujistěte se, že máte připravené následující zdroje:

Získání ID aplikace Azure AD B2C

Při zabezpečení rozhraní API ve službě Azure API Management pomocí Azure AD B2C potřebujete několik hodnot pro příchozí zásady , které vytvoříte ve službě Azure API Management. Nejprve si poznamenejte ID aplikace, kterou jste vytvořili v tenantovi Azure AD B2C. Pokud používáte aplikaci, kterou jste vytvořili pro splnění požadavků, použijte ID aplikace pro webapp1.

Pokud chcete zaregistrovat aplikaci ve vašem tenantovi Azure AD B2C, můžete použít naše nové prostředí sjednocených registrací aplikací nebo naše starší prostředí aplikací . Přečtěte si další informace o novém prostředí registrací.

  1. Přihlaste se do Azure Portalu.
  2. Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
  3. V levém podokně vyberte Azure AD B2C. Případně můžete vybrat všechny služby a pak vyhledat a vybrat Azure AD B2C.
  4. Vyberte Registrace aplikací a pak vyberte kartu Vlastněné aplikace .
  5. Poznamenejte si hodnotu ve sloupci ID aplikace (klienta) pro webovou aplikaci1 nebo pro jinou aplikaci, kterou jste vytvořili dříve.

Získejte koncový bod vystavitele tokenů

Dále získejte známou adresu URL konfigurace pro některý z vašich toků uživatelů Azure AD B2C. Potřebujete také identifikátor URI koncového bodu vystavitele tokenu, který chcete podporovat ve službě Azure API Management.

  1. Na webu Azure Portal přejděte do tenanta Azure AD B2C.

  2. V části Zásady vyberte Toky uživatelů.

  3. Vyberte existující zásadu (například B2C_1_signupsignin1) a pak vyberte Spustit uživatelský tok.

  4. Zaznamenejte adresu URL v hypertextovém odkazu, který se zobrazí pod nadpisem Spuštění uživatelského procesu v horní části stránky. Tato adresa URL je známý koncový bod zjišťování OpenID Connect pro tok uživatele a použijete ho v další části při konfiguraci příchozích zásad ve službě Azure API Management.

    Snímek obrazovky s dobře známým hypertextovým odkazem URI na stránce

  5. Výběrem hypertextového odkazu přejděte na známou konfigurační stránku OpenID Connect.

  6. Na stránce, která se otevře v prohlížeči, si poznamenejte issuer hodnotu. Například:

    https://<tenant-name>.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/

    Tuto hodnotu použijete v další části při konfiguraci rozhraní API ve službě Azure API Management.

Nyní byste měli mít zaznamenány pro použití v další části dvě adresy URL: URL známého koncového bodu konfigurace OpenID Connect a identifikátor URI vystavitele. Například:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration
https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/

Konfigurace příchozích zásad ve službě Azure API Management

Nyní jste připraveni přidat zásady příchozího provozu v Azure API Management, které ověřují volání rozhraní API. Přidáním zásady ověřování webového tokenu JSON (JWT), která ověřuje cílovou skupinu a vystavitele v přístupovém tokenu, můžete zajistit, aby se akceptovala pouze volání rozhraní API s platným tokenem.

  1. Na webu Azure Portal přejděte do vaší instance služby Azure API Management.

  2. Vyberte Rozhraní API.

  3. Vyberte rozhraní API, které chcete zabezpečit pomocí Azure AD B2C.

  4. Vyberte kartu Návrh.

  5. V části Zpracování příchozích dat vyberte </> a otevřete editor kódu zásad.

  6. Umístěte následující <validate-jwt> značku do zásady <inbound> a poté udělejte následující:

    a. Aktualizujte hodnotu v elementu url pomocí známé konfigurační URL adresy vašich zásad.
    b) <audience> Aktualizujte prvek pomocí ID aplikace, kterou jste vytvořili dříve v tenantovi B2C (například webapp1).
    c) Aktualizujte prvek <issuer> s koncovým bodem vydavatele tokenu, který jste si poznamenali dříve.

    <policies>
        <inbound>
            <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
                <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
                <audiences>
                    <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
                </audiences>
                <issuers>
                    <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
                </issuers>
            </validate-jwt>
            <base />
        </inbound>
        <backend> <base /> </backend>
        <outbound> <base /> </outbound>
        <on-error> <base /> </on-error>
    </policies>
    

Podpora více aplikací a vystavitelů

Několik aplikací obvykle komunikuje s jedním rozhraním REST API. Pokud chcete, aby vaše rozhraní API přijímalo tokeny určené pro více aplikací, přidejte jejich ID aplikací do <audiences> elementu v příchozích zásadách služby Azure API Management.

<!-- Accept tokens intended for these recipient applications -->
<audiences>
    <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
    <audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>

Podobně pro podporu více vystavitelů tokenů přidejte jejich identifikátory URI koncového bodu do <issuers> elementu v příchozích zásadách služby Azure API Management.

<!-- Accept tokens from multiple issuers -->
<issuers>
    <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
    <issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>

Migrujte na b2clogin.com

Pokud máte rozhraní API služby Azure API ManagementM, které ověřuje tokeny vydané starším login.microsoftonline.com koncovým bodem, měli byste migrovat rozhraní API a aplikace, které ho volají, aby používaly tokeny vydané b2clogin.com.

Pokud chcete provést fázovanou migraci, můžete postupovat podle tohoto obecného postupu:

  1. Přidejte podporu v příchozích zásadách služby Azure API Management pro tokeny vydané b2clogin.com i login.microsoftonline.com.
  2. Aktualizujte aplikace po jednom, abyste získali tokeny z koncového bodu b2clogin.com.
  3. Jakmile všechny aplikace správně získávají tokeny z b2clogin.com, odeberte z rozhraní API podporu login.microsoftonline.com vydaných tokenů.

Následující příklad příchozích zásad služby Azure API Management ukazuje, jak přijímat tokeny vydané b2clogin.com i login.microsoftonline.com. Zásady navíc podporují požadavky rozhraní API ze dvou aplikací.

<policies>
    <inbound>
        <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
            <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
            <audiences>
                <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
                <audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
            </audiences>
            <issuers>
                <issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
                <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
            </issuers>
        </validate-jwt>
        <base />
    </inbound>
    <backend> <base /> </backend>
    <outbound> <base /> </outbound>
    <on-error> <base /> </on-error>
</policies>

Další kroky

Další informace o zásadách služby Azure API Management najdete v referenčním indexu zásad služby Azure API Management.

Informace o migraci webových rozhraní API založených na OWIN a jejich aplikacích na b2clogin.com najdete v tématu Migrace webového rozhraní API založeného na OWIN do b2clogin.com.