Partager via


Sécuriser une API de gestion des API Azure avec Azure AD B2C

Important

À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.

Découvrez comment restreindre l’accès à votre API de gestion des API Azure aux clients qui se sont authentifiés auprès d’Azure Active Directory B2C (Azure AD B2C). Suivez les instructions de cet article pour créer et tester une stratégie entrante dans Gestion des API Azure qui restreint l’accès aux seules demandes qui incluent un jeton d’accès Azure AD B2C valide.

Conditions préalables

Avant de commencer, assurez-vous d’avoir mis en place les ressources suivantes :

Obtenir l’ID de l’application Azure AD B2C

Lorsque vous sécurisez une API dans Gestion des API Azure avec Azure AD B2C, vous avez besoin de plusieurs valeurs pour la stratégie entrante que vous créez dans Gestion des API Azure. Tout d’abord, enregistrez l’ID d’application d’une application que vous avez précédemment créée dans votre locataire Azure AD B2C. Si vous utilisez l’application que vous avez créée pour satisfaire aux conditions préalables, utilisez l’ID d’application pour webapp1.

Pour inscrire une application dans votre locataire Azure AD B2C, vous pouvez utiliser notre nouvelle expérience d’inscription d’applications unifiée ou notre expérience d’applications héritées. En savoir plus sur la nouvelle expérience d’inscription.

  1. Connectez-vous au portail Azure.
  2. Si vous avez accès à plusieurs tenants (locataires), sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant Azure AD B2C à partir du menu Annuaires + abonnements.
  3. Dans le volet gauche, sélectionnez Azure AD B2C. Vous pouvez également sélectionner Tous les services , puis rechercher et sélectionner Azure AD B2C.
  4. Sélectionnez Inscriptions d’applications, puis sélectionnez l’onglet Applications possédées .
  5. Enregistrez la valeur dans la colonne ID d’application (client) pour webapp1 ou pour une autre application que vous avez précédemment créée.

Obtenir un point de terminaison de l’émetteur de jeton

Ensuite, obtenez l’URL de configuration connue de l’un de vos flux d’utilisateurs Azure AD B2C. Vous avez également besoin de l’URI du point de terminaison de l’émetteur de jeton que vous souhaitez prendre en charge dans Gestion des API Azure.

  1. Dans le portail Azure, accédez à votre client Azure AD B2C.

  2. Sous Stratégies, sélectionnez Flux utilisateur.

  3. Sélectionnez une stratégie existante (par exemple, B2C_1_signupsignin1), puis sélectionnez Exécuter le flux d’utilisateurs.

  4. Enregistrez l’URL dans le lien hypertexte qui s’affiche sous l’en-tête Exécuter le flux d’utilisateurs en haut de la page. Cette URL est le point de terminaison de détection OpenID Connect bien connu pour le flux d’utilisateurs et vous l’utiliserez dans la section suivante lorsque vous configurez la stratégie de trafic entrant dans Gestion des API Azure.

    Capture d’écran du lien hypertexte URI bien connu sur la page « Exécuter le flux d’utilisateurs » du portail Azure.

  5. Sélectionnez le lien hypertexte pour accéder à la page de configuration connue d’OpenID Connect.

  6. Sur la page qui s’ouvre dans votre navigateur, enregistrez la issuer valeur. Par exemple:

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

    Vous utiliserez cette valeur dans la section suivante, lorsque vous configurerez votre API dans Gestion des API Azure.

Vous devez maintenant avoir deux URL enregistrées pour être utilisées dans la section suivante : l’URL du point de terminaison de configuration bien connue d’OpenID Connect et l’URI de l’émetteur. Par exemple:

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/

Configurer la stratégie entrante dans Gestion des API Azure

Vous êtes maintenant prêt à ajouter la stratégie entrante dans Gestion des API Azure qui valide les appels d’API. En ajoutant une politique de validation JSON Web Token (JWT) qui vérifie l’audience et l’émetteur dans un jeton d’accès, vous pouvez vous assurer que seuls les appels d’API avec un jeton valide sont acceptés.

  1. Dans le portail Azure, accédez à votre instance de gestion des API Azure.

  2. Sélectionnez API.

  3. Sélectionnez l’API que vous souhaitez sécuriser avec Azure AD B2C.

  4. Sélectionnez l’onglet Conception.

  5. Sous Traitement entrant, sélectionnez </> pour ouvrir l’éditeur de code de stratégie.

  6. Placez la balise suivante <validate-jwt> à l’intérieur de la <inbound> stratégie, puis procédez comme suit :

    a) Mettez à jour la valeur url dans l’élément <openid-config> avec l’URL de configuration bien connue de votre stratégie.
    b. Mettez à jour l’élément <audience> avec l’ID d’application de l’application que vous avez créée précédemment dans votre locataire B2C (par exemple, webapp1).
    v. Mettez à jour l’élément <issuer> avec le point de terminaison de l’émetteur de jeton que vous avez enregistré précédemment.

    <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>
    

Prise en charge de plusieurs applications et émetteurs

Plusieurs applications interagissent généralement avec une seule API REST. Pour permettre à votre API d’accepter des jetons destinés à plusieurs applications, ajoutez leurs ID d’application à l’élément <audiences> dans la stratégie entrante Gestion des API Azure.

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

De même, pour prendre en charge plusieurs émetteurs de jetons, ajoutez leurs URI de point de terminaison à l’élément <issuers> dans la stratégie entrante de Gestion des API Azure.

<!-- 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>

Migrer vers b2clogin.com

Si vous disposez d’une API Azure API ManagementM qui valide les jetons émis par le point de terminaison hérité login.microsoftonline.com , vous devez migrer l’API et les applications qui l’appellent pour utiliser les jetons émis par b2clogin.com.

Vous pouvez suivre ce processus général pour effectuer une migration par étapes :

  1. Ajoutez la prise en charge des jetons émis par b2clogin.com et login.microsoftonline.com dans la stratégie entrante de votre Gestion des API Azure.
  2. Mettez à jour vos applications une par une pour obtenir des jetons à partir du point de terminaison b2clogin.com.
  3. Une fois que toutes vos applications obtiennent correctement des jetons de b2clogin.com, supprimez la prise en charge des jetons émis par login.microsoftonline.com de l’API.

L’exemple de stratégie entrante Gestion des API Azure suivant illustre comment accepter des jetons émis par b2clogin.com et login.microsoftonline.com. En outre, la politique prend en charge les demandes d’API provenant de deux applications.

<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>

Étapes suivantes

Pour plus d’informations sur les stratégies de gestion des API Azure, consultez l’index de référence de la stratégie de gestion des API Azure.

Pour plus d’informations sur la migration d’API web OWIN et de leurs applications vers b2clogin.com, consultez Migrer une API web OWIN vers b2clogin.com.