Configurer l’inscription et la connexion avec un compte Azure AD B2C d’un autre locataire Azure AD B2C

Avant de commencer, utilisez le sélecteur Choisir un type de stratégie 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.

Notes

Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.

Vue d’ensemble

Cet article explique comment configurer une fédération avec un autre locataire Azure AD B2C. Quand vos applications sont protégées avec votre Azure AD B2C, cela permet aux utilisateurs d’autres Azure AD B2C de se connecter avec leurs comptes existants. Dans le diagramme suivant, les utilisateurs sont en mesure de se connecter à une application protégée par Azure AD B2C de Contoso avec un compte managé par un locataire Azure AD B2C de Fabrikam. Dans ce cas, le compte d’utilisateur doit être présent dans le locataire de Fabrikamavant qu’une application protégée par Azure AD B2C de Contosopuisse tenter de se connecter.

Azure AD B2C federation with another Azure AD B2C tenant

Prérequis

Vérifier le domaine de l’éditeur de l’application

Depuis novembre 2020, les inscriptions de nouvelles applications s’affichent comme étant non vérifiées dans l’invite de consentement de l’utilisateur, sauf si le domaine de l’éditeur de l’application a été vérifiéet si l’identité de l’entreprise a été vérifiée auprès de Microsoft Partner Network puis associée à l’application. (En savoir plus sur cette modification.) Notez que pour les flux d’utilisateurs Azure AD B2C, le domaine de l’éditeur apparaît uniquement lors de l’utilisation d’un compte Microsoft ou d’un autre locataire Microsoft Entra comme fournisseur d’identité. Pour répondre à ces nouvelles conditions, effectuez les étapes suivantes :

  1. Vérifiez l’identité de votre entreprise avec votre compte Microsoft Partner Network (MPN). Ce processus vérifie les informations relatives à votre entreprise et au contact principal de votre entreprise.
  2. Effectuez le processus de vérification de l’éditeur pour associer votre compte MPN à votre inscription d’application à l’aide de l’une des options suivantes :

Création d’une application Azure AD B2C

Pour activer la connexion des utilisateurs avec un compte d’un autre locataire Azure AD B2C (par exemple Fabrikam) dans votre Azure AD B2C (par exemple Contoso) :

  1. Créez un flux d’utilisateur ou une stratégie personnalisée.
  2. Créez ensuite une application dans Azure AD B2C, comme décrit dans cette section.

Pour créer une application :

  1. Connectez-vous au portail Azure.

  2. Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Azure AD B2C à partir du menu Répertoires + abonnements.

  3. Dans le portail Azure, recherchez et sélectionnez Azure AD B2C.

  4. Sélectionnez Inscriptions d’applications, puis Nouvelle inscription.

  5. Entrez un Nom pour l’application. Par exemple ContosoApp.

  6. Sous Types de comptes pris en charge, sélectionnez Comptes dans un fournisseur d’identité ou annuaire organisationnel (pour authentifier les utilisateurs avec des flux d’utilisateurs) .

  7. Sous URI de redirection, sélectionnez Web, puis entrez l’URL suivante en minuscules, en remplaçant your-B2C-tenant-name par le nom de votre locataire Azure AD B2C (par exemple Contoso).

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Par exemple : https://contoso.b2clogin.com/contoso.onmicrosoft.com/oauth2/authresp.

    Si vous utilisez un domaine personnalisé, entrez https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Remplacez your-domain-name par le nom de votre domaine personnalisé et your-tenant-name par le nom de votre locataire.

  8. Sous Autorisations, cochez la case Accorder le consentement administrateur aux autorisations openid et offline_access.

  9. Sélectionnez Inscription.

  10. Dans la page Azure AD B2C – Inscriptions d’applications, sélectionnez l’application que vous avez créée, par exemple ContosoApp.

  11. Enregistrez l’ID d’application (client) indiqué dans la page Vue d’ensemble de l’application. Vous en aurez besoin au moment de configurer le fournisseur d’identité dans la section suivante.

  12. Dans le menu de gauche, sous Gérer, sélectionnez Certificats et secrets.

  13. Sélectionnez Nouveau secret client.

  14. Entrez une description pour la clé secrète client dans la zone Description. Par exemple, clientsecret1.

  15. Sous Expire, sélectionnez une durée pendant laquelle le secret est valide, puis sélectionnez Ajouter.

  16. Enregistrez la Valeur du secret. Vous en aurez besoin au moment de configurer le fournisseur d’identité dans la section suivante.

Configurer Azure AD B2C en tant que fournisseur d’identité

  1. Connectez-vous au portail Azure.

  2. Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Azure AD B2C à partir du menu Répertoires + 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 Fournisseurs d’identité, puis Nouveau fournisseur OpenID Connect.

  5. Saisissez un Nom. Par exemple, entrez Fabrikam.

  6. Dans URL des métadonnées, entrez l’URL suivante en remplaçant {tenant} par le nom de domaine de votre locataire Azure AD B2C (par exemple Fabrikam). Remplacez {policy} par le nom de la stratégie que vous configurez dans l’autre locataire :

    https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration
    

    Par exemple : https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.

  7. Dans ID client, entrez l’ID d’application que vous avez enregistré précédemment.

  8. Dans Clé secrète client, entrez la clé secrète client que vous avez enregistrée précédemment.

  9. Pour l'Étendue, entrez openid.

  10. Conservez les valeurs par défaut pour Type de réponse et Mode de réponse.

  11. Facultatif : pour l’Indication du domaine, entrez le nom de domaine que vous souhaitez utiliser pour la connexion directe. Par exemple fabrikam.com.

  12. Sous Mappage des revendications du fournisseur d’identité, sélectionnez les revendications suivantes :

    • ID utilisateur : sub
    • Nom d’affichage : name
    • Prénom : given_name
    • Nom : family_name
    • Adresse e-mail : email
  13. Sélectionnez Enregistrer.

Ajouter le fournisseur d’identité Azure AD B2C à un flux d’utilisateur

  1. Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateur.
  2. Cliquez sur le flux d’utilisateur auquel vous souhaitez ajouter le fournisseur d’identité Azure AD B2C.
  3. Sous Fournisseurs d’identité sociale, sélectionnez Fabrikam.
  4. Sélectionnez Enregistrer.
  5. Pour tester votre stratégie, sélectionnez Exécuter le flux d’utilisateur.
  6. Pour Application, sélectionnez l’application web testapp1 que vous avez précédemment inscrite. L’URL de réponse doit être https://jwt.ms.
  7. Sélectionnez le bouton Exécuter le flux d’utilisateur.
  8. Dans la page d’inscription ou de connexion, sélectionnez Fabrikam pour vous connecter avec l’autre locataire Azure AD B2C.

Si le processus de connexion réussit, votre navigateur est redirigé vers https://jwt.ms, qui affiche le contenu du jeton retourné par Azure AD B2C.

Création d’une clé de stratégie

Vous devez stocker la clé d’application que vous avez créée auparavant dans votre locataire Azure AD B2C.

  1. Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Azure AD B2C à partir du menu Répertoires + abonnements.
  2. Choisissez Tous les services dans le coin supérieur gauche du portail Azure, puis recherchez et sélectionnez Azure AD B2C.
  3. Sous Stratégies, sélectionnez Identity Experience Framework.
  4. Sélectionnez Clés de stratégie, puis Ajouter.
  5. Pour Options, choisissez Manual.
  6. Entrez un nom pour la clé de stratégie. Par exemple : FabrikamAppSecret. Le préfixe B2C_1A_ étant ajouté automatiquement au nom de votre clé lors de sa création, sa référence dans le code XML de la section suivante est à B2C_1A_FabrikamAppSecret.
  7. Dans Secret, entrez le secret client que vous avez enregistré précédemment.
  8. Pour Utilisation de la clé, sélectionnez Signature.
  9. Sélectionnez Create (Créer).

Configurer Azure AD B2C en tant que fournisseur d’identité

Pour permettre aux utilisateurs de se connecter à l’aide d’un compte d’un autre locataire Azure AD B2C, vous devez définir l’autre Azure AD B2C en tant que fournisseur de revendications avec lequel Azure AD B2C peut communiquer via un point de terminaison. Le point de terminaison fournit un ensemble de revendications utilisées par Azure AD B2C pour vérifier qu’un utilisateur spécifique s’est authentifié.

Vous pouvez définir Azure AD B2C comme fournisseur de revendications en ajoutant Azure AD B2C à l’élément ClaimsProvider dans le fichier d’extension de votre stratégie.

  1. Ouvrez le fichier TrustFrameworkExtensions.xml.

  2. Recherchez l’élément ClaimsProviders. S’il n’existe pas, ajoutez-le sous l’élément racine.

  3. Ajoutez un nouveau ClaimsProvider comme suit :

    <ClaimsProvider>
      <Domain>fabrikam.com</Domain>
      <DisplayName>Federation with Fabrikam tenant</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AzureADB2CFabrikam-OpenIdConnect">
        <DisplayName>Fabrikam</DisplayName>
        <Protocol Name="OpenIdConnect"/>
        <Metadata>
          <!-- Update the Client ID below to the Application ID -->
          <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
          <!-- Update the metadata URL with the other Azure AD B2C tenant name and policy name -->
          <Item Key="METADATA">https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="response_types">code</Item>
          <Item Key="scope">openid</Item>
          <Item Key="response_mode">form_post</Item>
          <Item Key="HttpBinding">POST</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_FabrikamAppSecret"/>
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
          <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
          <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
          <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails"/>    
        </OutputClaims>
        <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
      </TechnicalProfile>
     </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Mettez à jour les éléments XML suivants avec la valeur appropriée :

    Élément XML Value
    ClaimsProvider\Domain Nom de domaine utilisé pour la connexion directe. Entrez le nom de domaine que vous souhaitez utiliser pour la connexion directe. Par exemple fabrikam.com.
    TechnicalProfile\DisplayName Cette valeur s’affiche sur le bouton Se connecter dans votre écran de connexion. Par exemple Fabrikam.
    Metadata\client_id Identificateur d’application du fournisseur d’identité. Mettez à jour l’ID client avec l’ID de l’application que vous avez créée précédemment dans l’autre locataire Azure AD B2C.
    Metadata\METADATA URL qui pointe vers un document de configuration de fournisseur d’identité OpenID Connect, également appelé point de terminaison de configuration OpenID connu. Entrez l’URL suivante en remplaçant {tenant} par le nom de domaine de l’autre locataire Azure AD B2C (Fabrikam). Remplacez {tenant} par le nom de la stratégie que vous configurez dans l’autre locataire et remplacez {policy] par le nom de la stratégie : https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration. Par exemple : https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.
    CryptographicKeys Mettez à jour la valeur de StorageReferenceId avec le nom de la clé de stratégie que vous avez créée précédemment. Par exemple : B2C_1A_FabrikamAppSecret.

Ajouter un parcours utilisateur

À ce stade, le fournisseur d’identité a été configuré, mais il n’est encore disponible dans aucune des pages de connexion. Si vous n’avez pas votre propre parcours utilisateur personnalisé, créez un doublon d’un modèle de parcours utilisateur existant ; sinon, passez à l’étape suivante.

  1. Ouvrez le fichier TrustFrameworkBase.xml à partir du pack de démarrage.
  2. Recherchez et copiez l’intégralité du contenu de l’élément UserJourney comprenant Id="SignUpOrSignIn".
  3. Ouvrez le fichier TrustFrameworkExtensions.xml, puis recherchez l’élément UserJourneys. Si l’élément n’existe pas, ajoutez-en un.
  4. Collez l’intégralité du contenu de l’élément UserJourney que vous avez copié en tant qu’enfant de l’élément UserJourneys.
  5. Renommez l’ID du parcours utilisateur. Par exemple : Id="CustomSignUpSignIn".

Ajoutez le fournisseur d’identité à un parcours utilisateur

Maintenant que vous disposez d’un parcours utilisateur, ajoutez-y le nouveau fournisseur d’identité. Vous ajoutez d’abord un bouton de connexion, puis vous liez le bouton à une action. L’action représente le profil technique que vous avez créé plus haut.

  1. Recherchez l’élément d’étape d’orchestration comprenant Type="CombinedSignInAndSignUp" ou Type="ClaimsProviderSelection" dans le parcours utilisateur. Il s’agit généralement de la première étape d’orchestration. L’élément ClaimsProviderSelections contient une liste de fournisseurs d’identité auxquels un utilisateur peut se connecter. L’ordre des éléments détermine l’ordre des boutons de connexion présentés à l’utilisateur. Ajoutez un élément XML ClaimsProviderSelection. Définissez la valeur TargetClaimsExchangeId sur un nom convivial.

  2. À la prochaine étape d’orchestration, ajoutez un élément ClaimsExchange. Définissez ID sur la valeur de l’ID d’échange des revendications cible. Mettez à jour la valeur de TechnicalProfileReferenceId sur l’ID du profil technique que vous avez créé précédemment.

Le code XML suivant montre les deux premières étapes d’orchestration d’un parcours utilisateur avec le fournisseur d’identité :

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="AzureADB2CFabrikamExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADB2CFabrikamExchange" TechnicalProfileReferenceId="AzureADB2CFabrikam-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Configurer la stratégie de partie de confiance

La stratégie de partie de confiance, par exemple SignUpSignIn.xml, spécifie le parcours utilisateur à partir duquel Azure AD B2C s’exécutera. Recherchez l’élément DefaultUserJourney dans la partie de confiance. Mettez à jour la valeur ReferenceId afin qu’elle corresponde à l’ID du parcours utilisateur auquel vous avez ajouté le fournisseur d'identité.

Dans l’exemple suivant, pour le parcours utilisateur CustomSignUpSignIn, la valeur ReferenceId est définie sur CustomSignUpSignIn :

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Téléchargez la stratégie personnalisée

  1. Connectez-vous au portail Azure.
  2. Sélectionnez l’icône Annuaire et abonnement dans la barre d’outils du portail, puis sélectionnez l’annuaire qui contient votre locataire Azure AD B2C.
  3. Dans la Portail Azure, recherchez et sélectionnez Azure AD B2C.
  4. Sous Stratégies, sélectionnez Identity Experience Framework.
  5. Sélectionnez Charger une stratégie personnalisée, puis chargez les deux fichiers de stratégie que vous avez modifiés, dans l’ordre suivant : la stratégie d’extension, par exemple TrustFrameworkExtensions.xml, puis la stratégie de la partie de confiance, par exemple SignUpSignIn.xml.

Tester votre stratégie personnalisée

  1. Sélectionnez votre stratégie de partie de confiance, par exemple B2C_1A_signup_signin.
  2. Pour Application, sélectionnez une application web que vous avez précédemment inscrite. L’URL de réponse doit être https://jwt.ms.
  3. Sélectionnez le bouton Exécuter maintenant.
  4. Dans la page d’inscription ou de connexion, sélectionnez Fabrikam pour vous connecter avec l’autre locataire Azure AD B2C.

Si le processus de connexion réussit, votre navigateur est redirigé vers https://jwt.ms, qui affiche le contenu du jeton retourné par Azure AD B2C.

Étapes suivantes

Découvrez comment transmettre l’autre jeton Azure AD B2C à votre application.