Ajouter AD FS en tant que fournisseur d’identité OpenID Connect à l’aide de stratégies personnalisées dans Azure Active Directory 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.

Prérequis

Créer une application AD FS

Pour autoriser la connexion des utilisateurs avec un compte AD FS dans Azure Active Directory B2C (Azure AD B2C), créez un groupe d’applications dans votre compte AD FS. Pour plus d’informations, consultez Créer une application web à l’aide d’OpenID Connect avec AD FS 2016 et versions ultérieures.

Pour créer un groupe d’applications, procédez comme suit :

  1. Dans Gestionnaire de serveur, sélectionnez Outils, puis Gestion AD FS.
  2. Dans Gestion AD FS, cliquez avec le bouton droit sur Groupes d’applications et sélectionnez Ajouter un groupe d’applications.
  3. Sur l’écran Bienvenue de l’Assistant de groupe d’applications :
    1. Entrez le nom de votre application. Par exemple, Application Azure AD B2C.
    2. Sous Applications client-serveur, sélectionnez le modèle Navigateur web accédant à une application web.
    3. Cliquez sur Suivant.
  4. Sur l’écran Application native de l’Assistant de groupe d’applications :
    1. Copiez la valeur d’Identificateur du client. L’identificateur du client est votre ID d’application AD FS. Vous aurez besoin de l’ID d’application plus loin dans cet article.
    2. Dans URI de redirection, entrez https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp, puis Ajouter. Si vous utilisez un domaine personnalisé, entrez https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Remplacez your-tenant-name par le nom de votre locataire et your-domain-name par le nom de votre domaine personnalisé.
    3. Sélectionnez Suivant, puis Suivant, puis encore Suivant pour terminer l’Assistant d’inscription d’application.
    4. Sélectionnez Fermer.

Configurer les réclamations de l’application

Dans cette étape, configurez les réclamations que l’application AD FS renvoie à Azure AD B2C.

  1. Parmi les groupes d’applications, sélectionnez l’application que vous avez créée.

  2. Dans la fenêtre des propriétés de l’application, sous Applications, sélectionnez l’application web. Sélectionnez ensuite Modifier. Screenshot that shows how to edit a web application.

  3. Sélectionnez l’onglet Règles de transformation d’émission, puis sélectionnez Ajouter une règle.

  4. Dans Modèle de règle de revendication, sélectionnez Envoyer les attributs LDAP en tant que revendications, puis Suivant.

  5. Fournissez un Nom de règle de revendication. Pour le Magasin d’attributs, sélectionnez Active Directory et ajoutez les revendications suivantes.

    Attribut LDAP Type de revendication sortante
    User-Principal-Name upn
    Surname family_name
    Given-Name given_name
    Display-Name name

    Notez que certains des noms ne s’afficheront pas dans la liste déroulante Type de revendication sortante. Vous devez les taper manuellement (la liste déroulante est modifiable).

  6. Sélectionnez Terminer.

  7. Sélectionnez Appliquer, puis OK.

  8. Sélectionnez encore OK pour terminer.

Configurer AD FS en tant que fournisseur d’identité

  1. Connectez-vous au portail Azure en tant qu’administrateur général de votre locataire Azure AD B2C.

  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, Contoso.

  6. Pour l’URL de métadonnées, entrez l’URL du document de configuration d’AD FS OpenID Connect. Par exemple :

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  7. Dans ID client, entrez l’ID d’application que vous avez enregistré précédemment.

  8. Pour l'Étendue, entrez openid.

  9. Pour Type de réponse, sélectionnez id_token. Par conséquent, la valeur de Clé secrète client n’est pas nécessaire. Explorez plus en détail l’utilisation d’ID Client et de secret lors de l’ajout d’un fournisseur d’identité OpenID Connect générique.

  10. (Facultatif) Pour l'Indication de domaine, entrez contoso.com. Pour plus d’informations, consultez Configurer la connexion directe avec Azure Active Directory B2C.

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

    • ID d’utilisateur : upn
    • Nom d’affichage : unique_name
    • Prénom : given_name
    • Nom de famille : family_name
  12. Sélectionnez Enregistrer.

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

À ce stade, le fournisseur d’identité AD FS (Contoso) a été configuré, mais il n’est encore disponible dans aucune des pages de connexion. Pour ajouter le fournisseur d’identité AD FS à un flux d’utilisateur :

  1. Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateur.
  2. Sélectionnez le flux d’utilisateur que vous souhaitez ajouter au fournisseur d’identité AD FS (Contoso).
  3. Sous Fournisseurs d’identité sociale, sélectionnez Contoso.
  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 Contoso pour vous connecter avec le compte Contoso.

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.

Configurer AD FS en tant que fournisseur d’identité

Pour permettre aux utilisateurs de se connecter avec un compte AD FS, vous devez définir le compte en tant que fournisseur de revendications avec lequel Azure AD B2C peut communiquer via un point de terminaison.

  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>contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-OpenIdConnect">
          <DisplayName>Contoso</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://your-adfs-domain/adfs/.well-known/openid-configuration</Item>
            <Item Key="response_types">id_token</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="scope">openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">0</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">Your AD FS application ID</Item>
          </Metadata>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="upn" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="unique_name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Pour l’URL de métadonnées, entrez l’URL du document de configuration d’AD FS OpenID Connect. Par exemple :

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  5. Définissez client_id sur l’ID d’application de l’inscription de l’application.

  6. Enregistrez le fichier .

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="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-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 Contoso pour vous connecter avec un compte Contoso.

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 un jeton AD FS à votre application.