image
image
image
image
image
image

Azure ad b2c get access token

Demander un jeton d’accès dans Azure Active Directory B2C

Un jeton d’accès contient des revendications que vous pouvez utiliser dans Azure Active Directory B2C (Azure AD B2C) pour identifier les autorisations accordées à vos API. Pour appeler un serveur de ressources, la requête HTTP doit inclure un jeton d’accès. Un jeton d’accès est désigné par access_token dans les réponses d’Azure AD B2C.

Cet article vous montre comment demander un jeton d’accès pour une application web et une API web. Pour plus d’informations sur les jetons dans Azure AD B2C, consultez la vue d’ensemble des jetons dans Azure Active Directory B2C.

Remarque Les

chaînes d’API web (On-Behalf-Of) ne sont pas prises en charge par Azure AD B2C : de nombreuses architectures incluent une API web qui doit appeler une autre API web en aval, toutes deux sécurisées par Azure AD B2C. Ce scénario est courant dans les clients qui ont une API web back-end, qui à son tour appelle un autre service. Ce scénario d’API web chaînée peut être pris en charge à l’aide de l’octroi d’informations d’identification OAuth 2.0 JWT Bearer, également connu sous le nom de flux On-Behalf-Of. Toutefois, le flux On-Behalf-Of n’est actuellement pas implémenté dans Azure AD B2C. Bien que la fonctionnalité On-Behalf-Of fonctionne pour les applications inscrites dans Microsoft Entra ID, elle ne fonctionne pas pour les applications inscrites dans Azure AD B2C, quel que soit le locataire (Microsoft Entra ID ou Azure AD B2C) qui émet les jetons.

Prérequis

Étendues

Les étendues permettent de gérer les autorisations sur les ressources protégées. Lorsqu’un jeton d’accès est demandé, l’application cliente doit spécifier les autorisations souhaitées dans le paramètre scope de la demande. Par exemple, pour spécifier la valeur d’étendue de pour l’API dont l’URI d’ID d’application est , l’étendue Sera.

Les étendues sont utilisées par l’API web pour implémenter le contrôle d’accès basé sur l’étendue. Par exemple, les utilisateurs de l’API web peuvent disposer d’un accès en lecture et en écriture, ou les utilisateurs de l’API web peuvent n’avoir qu’un accès en lecture. Pour acquérir plusieurs autorisations dans la même demande, vous pouvez ajouter plusieurs entrées dans le paramètre de portée unique de la demande, séparées par des espaces.

L’exemple suivant montre des étendues décodées dans une URL :

L’exemple suivant montre des étendues encodées dans une URL :

Si vous demandez plus d’étendues que ce qui est accordé pour votre application cliente, l’appel réussit si au moins une autorisation est accordée. La revendication scp dans le jeton d’accès résultant est renseignée avec uniquement les autorisations qui ont été accordées avec succès.

Portées OpenID Connect

La norme OpenID Connect spécifie plusieurs valeurs de portée spéciales. Le Les étendues suivantes représentent l’autorisation d’accéder au profil de l’utilisateur :

  • openid - Demande un jeton d’ID.
  • offline_access : demande un jeton d’actualisation à l’aide des flux de code d’authentification.
  • 00000000-0000-0000-0000-000000000000 : l’utilisation de l’ID client comme étendue indique que votre application a besoin d’un jeton d’accès qui peut être utilisé sur votre propre service ou API web, représenté par le même ID client.

Si le paramètre response_type d’une demande inclut , le paramètre scope doit inclure au moins une étendue de ressource autre que et qui sera accordée. Dans le cas contraire, la demande échoue.

Demander un jeton

Pour demander un jeton d’accès, vous avez besoin d’un code d’autorisation. Voici un exemple de demande adressée au point de terminaison pour un code d’autorisation :

remplacez les valeurs dans la chaîne de requête comme suit :

  • - Nom de votre locataire Azure AD B2C. Si vous utilisez un domaine personnalisé, remplacez-le par votre domaine, par exemple .
  • - Le nom de votre stratégie personnalisée ou de votre flux d’utilisateurs.
  • - L’identificateur d’application de l’application Web que vous avez enregistrée pour prendre en charge le flux d’utilisateurs.
  • - L’URI de l’identificateur d’application que vous définissez sous Exposer une lame d’API de l’application cliente.
  • - Nom de l’étendue que vous avez ajoutée sous Exposer une lame d’API de l’application cliente.
  • - L’URI de redirection que vous avez saisi lors de l’inscription de l’application cliente.

Pour avoir une idée du fonctionnement de la requête, collez-la dans votre navigateur et exécutez-la.

C’est la partie interactive du flux, où vous passez à l’action. Vous êtes invité à terminer le flux de travail du flux d’utilisateurs. Cela peut impliquer la saisie de votre nom d’utilisateur et de votre mot de passe dans un formulaire de connexion ou tout autre nombre d’étapes. Les étapes que vous effectuez dépendent de la façon dont le flux d’utilisateurs est défini.

La réponse avec le code d’autorisation doit être similaire à cet exemple :

Après avoir reçu le code d’autorisation, vous pouvez l’utiliser pour demander un jeton d’accès. Les paramètres se trouvent dans le corps de la requête HTTP POST :

Si vous souhaitez tester cette requête HTTP POST, vous pouvez utiliser n’importe quel client HTTP tel que Microsoft PowerShell.

Une réponse de jeton réussie ressemble à ceci :

Lorsque vous utilisez https://jwt.ms pour examiner le jeton d’accès qui a été renvoyé, vous devez voir quelque chose de similaire à l’exemple suivant :

Étapes suivantes