Partager via


Transmettre un jeton d’accès du fournisseur d’identité à votre application dans Azure Active Directory 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.

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.

Un flux d’utilisateurs dans Azure Active Directory B2C (Azure AD B2C) permet aux utilisateurs de votre application de s’inscrire ou de se connecter à un fournisseur d’identité. Au démarrage du parcours, Azure AD B2C reçoit un jeton d’accès du fournisseur d’identité. Azure AD B2C utilise ce jeton pour récupérer des informations sur l’utilisateur. Vous activez une revendication dans votre flux utilisateur pour transmettre le jeton aux applications que vous inscrivez dans Azure AD B2C.

Azure AD B2C prend en charge la transmission du jeton d’accès des fournisseurs d’identité OAuth 2.0 , qui incluent Facebook et Google. Pour tous les autres fournisseurs d’identité, la revendication est retournée vide.

Azure AD B2C prend en charge le passage du jeton d’accès des fournisseurs d’identité OAuth 2.0 et OpenID Connect . Pour tous les autres fournisseurs d’identité, la revendication est retournée vide. Pour plus d’informations, consultez la démo en direct de la fédération des fournisseurs d'identité.

Le diagramme suivant montre comment un jeton du fournisseur d'authentification est renvoyé à votre application :

Flux du transfert direct du fournisseur d’identité

Conditions préalables

Activer la revendication

  1. Connectez-vous au portail Azure en tant qu’administrateur de flux d’utilisateur ID externe de votre locataire Azure AD B2C.

  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. Choisissez tous les services dans le coin supérieur gauche du portail Azure, recherchez et sélectionnez Azure AD B2C.

  4. Sélectionnez Flux d’utilisateurs (stratégies), puis sélectionnez votre flux d’utilisateur. Par exemple, B2C_1_signupsignin1.

  5. Sélectionnez les demandes d’application.

  6. Activez la revendication Jeton d’accès du fournisseur d’identité.

    Activer la revendication Jeton d’accès du fournisseur d’identité

  7. Cliquez sur Enregistrer pour enregistrer le flux utilisateur.

Tester le flux utilisateur

Lors du test de vos applications dans Azure AD B2C, il peut être utile d'avoir le jeton Azure AD B2C renvoyé à https://jwt.ms afin de passer en revue les revendications qu’il contient.

  1. Dans la page Vue d’ensemble du flux utilisateur, sélectionnez Exécuter le flux utilisateur.

  2. Pour l’application, sélectionnez votre application que vous avez inscrite précédemment. Pour afficher le jeton dans l’exemple ci-dessous, l’URL de réponse doit s’afficher https://jwt.ms.

  3. Cliquez sur Exécuter le flux utilisateur, puis connectez-vous avec les informations d’identification de votre compte. Vous devez voir le jeton d’accès du fournisseur d’identité dans la revendication idp_access_token.

    Vous devez voir quelque chose de similaire à l’exemple suivant :

    Jeton décodé dans jwt.ms avec bloc de idp_access_token mis en surbrillance

Ajouter les éléments de revendication

  1. Ouvrez votre fichier TrustframeworkExtensions.xml et ajoutez l'élément ClaimType avec un identificateur de identityProviderAccessToken à l'élément ClaimsSchema suivant :

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Ajoutez l’élément OutputClaim à l’élément TechnicalProfile pour chaque fournisseur d’identité OAuth 2.0 pour lequel vous souhaitez le jeton d’accès. L’exemple suivant montre l’élément ajouté au profil technique Facebook :

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Enregistrez le fichier TrustframeworkExtensions.xml .

  4. Ouvrez votre fichier de politique d’entité de confiance, tel que SignUpOrSignIn.xml, puis ajoutez l’élément OutputClaim au TechnicalProfile :

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Enregistrez le fichier de stratégie.

Tester votre stratégie

Lors du test de vos applications dans Azure AD B2C, il peut être utile de renvoyer le jeton Azure AD B2C à https://jwt.ms afin de pouvoir examiner les revendications qu’il contient.

Charger les fichiers

  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. Choisissez tous les services dans le coin supérieur gauche du portail Azure, puis recherchez et sélectionnez Azure AD B2C.
  4. Sélectionnez Identity Experience Framework.
  5. Dans la page Stratégies personnalisées, cliquez sur Charger la stratégie.
  6. Activez Remplacer la stratégie si elle existe, puis recherchez et sélectionnez le fichier TrustframeworkExtensions.xml.
  7. Sélectionnez Téléverser.
  8. Répétez les étapes 5 à 7 pour le fichier du tiers de confiance, par exemple SignUpOrSignIn.xml.

Exécuter la stratégie

  1. Ouvrez la stratégie que vous avez modifiée. Par exemple, B2C_1A_signup_signin.

  2. Pour l’application, sélectionnez votre application que vous avez inscrite précédemment. Pour afficher le jeton dans l’exemple ci-dessous, l’URL de réponse doit s’afficher https://jwt.ms.

  3. Sélectionnez Exécuter maintenant.

    Vous devez voir quelque chose de similaire à l’exemple suivant :

    Jeton décodé dans jwt.ms avec bloc de idp_access_token mis en surbrillance

Transmettre le jeton d’actualisation du fournisseur d’identité (facultatif)

Le jeton d’accès retourné par le fournisseur d’identité est valide pendant une courte période. Certains fournisseurs d’identité émettent également un jeton d’actualisation avec le jeton d’accès. Votre application cliente peut ensuite échanger le jeton d’actualisation du fournisseur d’identité pour un nouveau jeton d’accès si nécessaire.

La stratégie personnalisée Azure AD B2C prend en charge la transmission du jeton d’actualisation des fournisseurs d’identité OAuth 2.0, qui inclut Facebook, Google et GitHub.

Pour transmettre le jeton d’actualisation du fournisseur d’identité, procédez comme suit :

  1. Ouvrez votre fichier TrustframeworkExtensions.xml et ajoutez l’élément ClaimType suivant, avec un identificateur de identityProviderRefreshToken, à l’élément ClaimsSchema.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Ajoutez l’élément OutputClaim à l’élément TechnicalProfile pour chaque fournisseur d’identité OAuth 2.0 pour lequel vous souhaitez obtenir le jeton d’actualisation. L’exemple suivant montre l’élément ajouté au profil technique Facebook :

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Certains fournisseurs d’identité vous obligent à inclure des métadonnées ou des périmètres au profil technique du fournisseur d’identité.

    • Pour le fournisseur d’identité Google, ajoutez les deux types de revendications access_type et prompt. Ajoutez ensuite les revendications d’entrée suivantes au profil technique du fournisseur d’identité :

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • D’autres fournisseurs d’identité peuvent avoir des méthodes différentes pour émettre un jeton d’actualisation. Suivez l’audience du fournisseur d’identité et ajoutez les éléments nécessaires au profil technique de votre fournisseur d’identité.

  4. Enregistrez les modifications que vous avez apportées dans votre fichier TrustframeworkExtensions.xml .

  5. Ouvrez votre fichier de politique d’entité de confiance, tel que SignUpOrSignIn.xml, puis ajoutez l’élément OutputClaim au TechnicalProfile :

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Enregistrez les modifications apportées dans votre fichier de stratégie de partie de confiance.

  7. Téléchargez le fichier TrustframeworkExtensions.xml, puis le fichier de stratégie du tiers de confiance.

  8. Tester votre stratégie

Étapes suivantes

Pour en savoir plus, consultez la vue d’ensemble des jetons Azure AD B2C.