Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.
Avant de commencer, utilisez le sélecteur Choisir un type de stratégie en haut de cette page pour choisir le type de stratégie que vous configurez. Azure Active Directory B2C offre deux possibilités pour définir la façon dont les utilisateurs interagissent avec vos applications : via des flux utilisateurs prédéfinis ou via des stratégies personnalisées entièrement configurables. La procédure donnée dans cet article est différente pour chaque méthode.
Le flux d’octroi des informations d’identification du client OAuth 2.0 permet à une application (client confidentiel) d’utiliser ses propres informations d’identification, au lieu d’emprunter l’identité d’un utilisateur, pour s’authentifier lors de l’appel d’une ressource web, telle que l’API REST. Ce type d’octroi est couramment utilisé pour les interactions de serveur à serveur qui doivent s’exécuter en arrière-plan sans l’interaction immédiate d’un utilisateur. Ces types d’application sont souvent appelés démons (daemons) ou comptes de service.
Dans le flux des informations d’identification du client, les autorisations sont accordées directement à l’application elle-même par l’administrateur. Lorsque l’application présente un jeton à une ressource, la ressource applique que l’application elle-même a l’autorisation d’effectuer une action, car il n’y a pas d’utilisateur impliqué dans l’authentification. Cet article décrit les étapes nécessaires pour autoriser une application à appeler une API et comment obtenir les jetons nécessaires pour appeler cette API.
Remarque
Cette fonctionnalité est disponible en préversion publique.
Vue d’ensemble de l’inscription de l’application
Pour permettre à votre application de se connecter avec les informations d’identification du client, appelez une API web, vous inscrivez deux applications dans le répertoire Azure AD B2C.
L’inscription de l’application permet à votre application de se connecter avec Azure AD B2C. Le processus d’inscription de l’application génère un ID d’application, également appelé ID client, qui identifie votre application de façon unique. Vous créez également une clé secrète client, que votre application utilise pour acquérir les jetons en toute sécurité.
L’inscription de l’API web permet à votre application d’appeler une API web sécurisée. L’inscription comprend les étendues de l’API web. Les étendues permettent de gérer les autorisations d’accès aux ressources protégées, telles que votre API web. Vous accordez ensuite à votre application des autorisations sur les étendues d’API web. Lorsqu’un jeton d’accès est demandé, votre application spécifie le
.default
paramètre d’étendue de la demande. Azure AD B2C retourne les étendues d’API web accordées à votre application.
Les inscriptions et l’architecture de l’application sont illustrées dans le diagramme suivant :
Étape 1 : Inscrire l’application API web
Dans cette étape, vous inscrivez l’API web (App 2) avec ses étendues. Plus tard, accordez à votre application (App 1) une autorisation sur ces étendues. Si vous disposez déjà d’une telle inscription d’application, ignorez cette étape, puis passez à l’étape suivante, étape 1.1 Définir des rôles d’API web (étendues).
Pour créer l’inscription d’application API web (ID d’application : 2), suivez les étapes suivantes :
Connectez-vous au portail Azure.
Veillez à bien utiliser l’annuaire qui contient votre locataire Azure AD B2C. Sélectionnez l’icône Répertoires + abonnements dans la barre d’outils du portail.
Sur la page Paramètres du portail | Répertoires + abonnements, recherchez votre répertoire AD B2C Azure dans la liste Nom de répertoire, puis sélectionnez Basculer.
Dans le portail Azure, recherchez et sélectionnez Azure AD B2C.
Sélectionnez Inscriptions d'applications, puis sélectionnez Nouvelle inscription.
Dans le champ Nom, entrez un nom pour l’application (par exemple my-api1). Laissez les valeurs par défaut pour l'URI de redirection et les Types de comptes pris en charge.
Sélectionnez Inscrire.
Une fois l’inscription de l’application terminée, sélectionnez Vue d’ensemble.
Enregistrez l’ID d’application (client) que vous utiliserez ultérieurement pour configurer l’application web.
Étape 1.1 Définir des rôles d’API web (étendues)
Dans cette étape, vous configurez l’URI d’ID d’application de l’API web, puis définissez les rôles d’application. Les rôles d’application sont utilisés par les étendues OAuth 2.0 et définis sur une inscription d’application représentant votre API. Votre application utilise l’URI d’ID d’application avec l’étendue .default
. Pour définir des rôles d’application, procédez comme suit :
Sélectionnez l’API web que vous avez créée, par exemple my-api1.
Sous Gérer, sélectionnez Exposer une API.
A côté d’URI d’ID d’application, sélectionnez le lien Définir. Remplacez la valeur par défaut (GUID) par un nom unique (par exemple, api), puis sélectionnez Enregistrer.
Copiez l’URI de l’ID d’application. La capture d’écran suivante montre comment copier l’URI de l’ID d’application.
Sous Gérer, sélectionnez Manifeste pour ouvrir l’éditeur de manifeste d’application. Dans l’éditeur, recherchez le
appRoles
paramètre et définissez les rôles d’application qui ciblentapplications
. Chaque définition de rôle d’application doit avoir un identificateur unique global (GUID) pour said
valeur. Générez un nouveau GUID en exécutantnew-guid
la commande dans Microsoft PowerShell ou un générateur DE GUID en ligne. La propriétévalue
de chaque définition de rôle d’application apparaît dans l’étendue, la revendicationscp
. Lavalue
propriété ne peut pas contenir d’espaces. L’exemple suivant illustre deux rôles d’application, lire et écrire :"appRoles": [ { "allowedMemberTypes": ["Application"], "displayName": "Read", "id": "d6a15e20-f83c-4264-8e61-5082688e14c8", "isEnabled": true, "description": "Readers have the ability to read tasks.", "value": "app.read" }, { "allowedMemberTypes": ["Application"], "displayName": "Write", "id": "204dc4ab-51e1-439f-8c7f-31a1ebf3c7b9", "isEnabled": true, "description": "Writers have the ability to create tasks.", "value": "app.write" }],
En haut de la page, sélectionnez Enregistrer pour enregistrer les modifications du manifeste.
Étape 2 : Inscrire une application
Pour permettre à votre application de se connecter avec Azure AD B2C à l’aide du flux d’informations d’identification du client, vous pouvez utiliser une application existante ou en inscrire une nouvelle (Application 1).
Si vous utilisez une application existante, vérifiez que l’application accessTokenAcceptedVersion
est définie sur 2
:
- Dans le portail Azure, recherchez et sélectionnez Azure AD B2C.
- Sélectionnez Inscriptions d’applications, puis sélectionnez votre application existante dans la liste.
- Dans le menu de gauche, sous Gérer, sélectionnez Manifeste pour ouvrir l’éditeur de manifeste.
- Recherchez l’élément
accessTokenAcceptedVersion
et définissez sa valeur sur2
. - En haut de la page, sélectionnez Enregistrer pour enregistrer les modifications.
Pour créer une inscription d’application web, procédez comme suit :
Dans le portail Azure, recherchez et sélectionnez Azure AD B2C
Sélectionnez Inscriptions d'applications, puis sélectionnez Nouvelle inscription.
Entrez un nom pour l’application. Par exemple, ClientCredentials_app.
Laissez les autres valeurs comme elles le sont, puis sélectionnez Inscrire.
Enregistrez l’ID d’application (client) à utiliser dans une étape ultérieure.
Étape 2.1 Créer un secret de client
Créez un secret client pour l’application inscrite. Votre application utilise la clé secrète client pour prouver son identité lorsqu’elle demande des jetons.
Sous Gérer, sélectionnez Certificats et secrets.
Sélectionnez Nouveau secret client.
Dans la zone Description , entrez une description pour la clé secrète client (par exemple, clientsecret1).
Sous Expire, sélectionnez une durée pendant laquelle le secret est valide, puis sélectionnez Ajouter.
Enregistrez la valeur du secret. Vous utilisez cette valeur pour la configuration dans une étape ultérieure.
Étape 2.2 Accorder les autorisations d’application pour l’API web
Pour accorder des autorisations à votre application (App 1), procédez comme suit :
Sélectionnez Inscriptions d’applications, puis sélectionnez l’application que vous avez créée (Application 1).
Sous Gérer, sélectionnez autorisations d’API.
Sous Autorisations configurées, sélectionnez Ajouter une autorisation.
Sélectionnez l’onglet Mes API.
Sélectionnez l’API (Application 2) à laquelle l’application web doit avoir accès. Par exemple, saisissez my-api1.
Sélectionnez l’autorisation d’application.
Sous Autorisation, développez l’application, puis sélectionnez les étendues que vous avez définies précédemment (par exemple, app.read et app.write).
Sélectionnez Ajouter des autorisations.
Sélectionnez Accorder le consentement de l’administrateur pour <nom de votre locataire>.
Sélectionnez Oui.
Sélectionnez Actualiser, puis vérifiez que la mention Accordé pour ... apparaît sous État pour les deux étendues.
Étape 3 : Obtenir un jeton d’accès
Il n’existe aucune action spécifique pour activer les informations d’identification du client pour les flux utilisateur ou les stratégies personnalisées. Les flux d’utilisateurs Azure AD B2C et les stratégies personnalisées prennent en charge le flux d’informations d’identification du client. Si vous ne l’avez pas déjà fait, créez un flux utilisateur ou une stratégie personnalisée. Ensuite, utilisez votre application de développement d’API préférée pour générer une demande d’autorisation. Construisez un appel comme cet exemple avec les informations suivantes comme corps de la requête POST :
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token
- Remplacez
<tenant-name>
par le nom de votre locataire Azure AD B2C. Par exemple :contoso.b2clogin.com
. - Remplacez
<policy>
par le nom complet de votre flux d’utilisateur ou par la stratégie personnalisée. Notez que tous les types de flux utilisateur et de stratégies personnalisées prennent en charge le flux d’informations d’identification du client. Vous pouvez utiliser n’importe quel flux utilisateur ou stratégie personnalisée dont vous disposez, ou en créer un, tel que l’inscription ou la connexion.
Clé | Valeur |
---|---|
type d'autorisation | client_credentials |
client_id | ID client de l’étape 2 Inscrire une application. |
secret du client | Valeur de la clé secrète client de l’étape 2.1 Créer une clé secrète client. |
portée |
L’URI d’ID d’application de l’étape 1.1 Définir des rôles d’API web (étendues) et .default . Par exemple https://contoso.onmicrosoft.com/api/.default , ou https://contoso.onmicrosoft.com/00001111-aaaa-2222-bbbb-3333cccc4444/.default . |
La requête POST réelle ressemble à l’exemple suivant :
Demande :
POST /<tenant-name>.onmicrosoft.com/B2C_1A_SUSI/oauth2/v2.0/token HTTP/1.1
Host: <tenant-name>.b2clogin.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=11112222-bbbb-3333-cccc-4444dddd5555
&client_secret=FyX7Q~DuPJ...
&scope=https%3A%2F%2Fcontoso.onmicrosoft.com%2Fapi%2F.default
Réponse :
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5OZDlnUkNWWUc2dUs...",
"token_type": "Bearer",
"not_before": 1645172292,
"expires_in": 3600,
"expires_on": 1645175892,
"resource": "11112222-bbbb-3333-cccc-4444dddd5555"
}
Découvrez les revendications liées au retour du jeton d’accès. Le tableau suivant répertorie les revendications liées au flux d’informations d’identification du client.
Réclamation | Descriptif | Valeur |
---|---|---|
aud |
Identifie le destinataire du jeton. | ID client de l’API. |
sub |
Le principal de service associé à l’application qui a lancé la requête. | Il s’agit du principal de service du client_id de la requête d’autorisation. |
azp |
Partie autorisée : partie à laquelle le jeton d’accès a été émis. |
ID client de l’application qui a lancé la requête. Il s’agit de la même valeur que celle que vous avez spécifiée dans la client_id demande d’autorisation. |
scp |
Ensemble d’étendues exposées par votre API d’application (délimiteur d’espace). | Dans le flux d’informations d’identification de client, l’étendue .default est demandée dans le cadre de la demande d’autorisation et le jeton contient la liste des étendues exposées (et consenties par l’administrateur de l’application) par l’API. Par exemple : app.read app.write . |
Étape 3.1 Obtenir un jeton d’accès avec un script
Utilisez le script PowerShell suivant pour tester votre configuration :
$appId = "<client ID>"
$secret = "<client secret>"
$endpoint = "https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token"
$scope = "<Your API id uri>/.default"
$body = "grant_type=client_credentials&scope=" + $scope + "&client_id=" + $appId + "&client_secret=" + $secret
$token = Invoke-RestMethod -Method Post -Uri $endpoint -Body $body
Utilisez le script cURL suivant pour tester votre configuration :
curl --location --request POST 'https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/<policy>/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--form 'grant_type="client_credentials"' \
--form 'client_id="<client ID>"' \
--form 'client_secret="<client secret>"' \
--form 'scope="<Your API id uri>/.default"'
Étape 4 : Personnaliser le jeton
Cette fonctionnalité est disponible uniquement pour les stratégies personnalisées. Pour les étapes de configuration, sélectionnez Stratégie personnalisée dans le sélecteur précédent.
Les stratégies personnalisées permettent d’étendre le processus d’émission de jeton. Pour personnaliser le parcours utilisateur des informations d’identification du client OAuth 2.0, suivez les instructions de configuration d’un parcours utilisateur des informations d’identification du client. Ensuite, dans le JwtIssuer
profil technique, ajoutez les ClientCredentialsUserJourneyId
métadonnées avec une référence au parcours utilisateur que vous avez créé.
L’exemple suivant montre comment ajouter le ClientCredentialsUserJourneyId
dans le profil technique de l’émetteur de jeton.
<TechnicalProfile Id="JwtIssuer">
<Metadata>
<Item Key="ClientCredentialsUserJourneyId">ClientCredentialsJourney</Item>
</Metadata>
</TechnicalProfile>
L’exemple suivant montre un parcours utilisateur d’informations d’identification client. Les premières et les dernières étapes d’orchestration sont requises.
<UserJourneys>
<UserJourney Id="ClientCredentialsJourney">
<OrchestrationSteps>
<!-- [Required] Do the client credentials -->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ClientCredSetupExchange" TechnicalProfileReferenceId="ClientCredentials_Setup" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Optional] Call a REST API or claims transformation -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="TokenAugmentation" TechnicalProfileReferenceId="TokenAugmentation" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Required] Issue the access token -->
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
</UserJourneys>