Partager via


Configurez la Transmission de sécurité avec Azure Active Directory B2C pour une authentification sans mot de passe

Dans cet exemple de didacticiel, découvrez comment intégrer l’authentification Azure Active Directory B2C (Azure AD B2C) avec la solution d’authentification sans mot de passe de BindID Transmit Security. BindID utilise l’authentification biométrique FIDO2 (Strong Fast Identity Online) pour garantir la fiabilité de l’expérience d’authentification omnicanale. Cette solution garantit une expérience de connexion fluide pour tous les clients sur tous les appareils et canaux, et elle réduit les risques de fraudes, d’hameçonnage et de réutilisation des informations d’identification.

Description du scénario

Le diagramme d’architecture suivant illustre l’implémentation.

Diagramme de l’architecture de BindID et Azure AD B2C

  1. L’utilisateur ouvre la page de connexion Azure AD B2C, et se connecte ou s’inscrit avec un nom d’utilisateur.
  2. Azure AD B2C redirige l’utilisateur vers BindID à l’aide d’une requête OpenID Connect (OIDC).
  3. BindID authentifie l’utilisateur à l’aide de la biométrie FIDO2 d’Apple, telle qu’une empreinte digitale.
  4. Une réponse d’authentification décentralisée est retournée à BindID.
  5. La réponse OIDC est transmise à Azure AD B2C.
  6. L’utilisateur est autorisé ou non à accéder à l’application cliente en fonction des résultats de la vérification.

Prérequis

Pour commencer, vous avez besoin des éléments suivants :

Inscrire une application dans BindID

Pour commencer :

  1. Accédez à developer.bindid.io pour configurer votre application.
  2. Ajoutez une application dans le portail d’administration de BindID. Vous devrez vous connecter.
Propriété Description
Nom Nom de l'application
Domaine Entrez your-B2C-tenant-name.onmicrosoft.com. Remplacez your-B2C-tenant par votre ID de locataire Azure AD B2C.
URI de redirection https://jwt.ms/
URL de redirection Entrez https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Remplacez your-B2C-tenant par votre ID de locataire Azure AD B2C. Si vous utilisez un domaine personnalisé, remplacez your-B2C-tenant-name.b2clogin.com par votre domaine personnalisé.
  1. Lors de l’inscription, un ID client et une clé secrète client s’affichent.
  2. Enregistrez les valeurs à utiliser ultérieurement.

Configurer BindID comme fournisseur d’identité dans Azure AD B2C

Pour les instructions suivantes, utilisez l’annuaire qui contient votre locataire Azure AD B2C.

  1. Connectez-vous au Portail Azure en tant qu’administrateur général.
  2. Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
  3. Dans la page Paramètres du portail | Répertoires + abonnements, dans la liste Nom de répertoire, recherchez votre répertoire Azure AD B2C.
  4. Sélectionnez Changer.
  5. En haut à gauche du portail Azure, sélectionnez Tous les services.
  6. Recherchez et sélectionnez Azure AD B2C.
  7. Sélectionnez Fournisseurs d’identité.
  8. Sélectionnez Nouveau fournisseur OpenID Connect.
  9. Saisissez un Nom.
  10. Pour URL de métadonnées, entrez https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. Pour ID client, entrez l’ID client que vous avez enregistré.
  12. Pour Clé secrète client, entrez la clé secrète client que vous avez enregistrée.
  13. Pour l'Étendue, entrez openid email.
  14. Pour Type de réponse, sélectionnez code.
  15. Pour Mode de réponse, sélectionnez form_post.
  16. Sous Mappage des revendications du fournisseur d’identité, pour ID d’utilisateur, sélectionnez sub.
  17. Pour E-mail, sélectionnez email.
  18. Sélectionnez Enregistrer.

Créer un flux utilisateur

  1. Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateurs sous Stratégies.
  2. Sélectionnez Nouveau flux d’utilisateurs.
  3. Sélectionnez le type de flux d’utilisateurs Inscription et connexion.
  4. Sélectionnez Create (Créer).
  5. Saisissez un Nom.
  6. Sous Fournisseurs d’identité, pour Comptes locaux, sélectionnez Aucun. Cette action désactive l’authentification par e-mail et par mot de passe.
  7. Pour Fournisseurs d’identité personnalisés, sélectionnez le fournisseur d’identité BindID que vous venez de créer, par exemple Connexion avec BindID.
  8. Sélectionnez Create (Créer).

Tester le flux utilisateur

  1. Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateurs.
  2. Sélectionnez le nouveau flux d’utilisateurs, tel que B2C_1_signupsignin.
  3. Pour Application, sélectionnez l’application web que vous avez inscrite. L’URL de réponse est https://jwt.ms.
  4. Sélectionnez Exécuter le flux utilisateur.
  5. Le navigateur est redirigé vers la page de connexion BindID.
  6. Entrez l’adresse e-mail du compte inscrit.
  7. Procédez à l’authentification sans application, à l’aide d’une identification biométrique (par exemple, une reconnaissance d’empreinte digitale) permise par le standard FIDO2.
  8. Le navigateur est redirigé vers https://jwt.ms. Le contenu s’affiche pour le jeton retourné par Azure AD B2C.

Créer une clé de stratégie BindID

Ajoutez la clé secrète client de l’application BindID en tant que clé de stratégie. Pour les instructions suivantes, utilisez l’annuaire qui contient votre locataire Azure AD B2C.

  1. Connectez-vous au portail Azure.
  2. Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
  3. Sur la page Paramètres du portail, Répertoires + abonnements, dans la liste Nom de répertoire, repérez votre répertoire Azure AD B2C.
  4. Sélectionnez Changer.
  5. Sur la page de présentation, sous Stratégies, sélectionnez Identity Experience Framework.
  6. Sélectionnez Clés de stratégie.
  7. Sélectionnez Ajouter.
  8. Pour Options, sélectionnez Manuel.
  9. Saisissez un Nom. Le préfixe B2C_1A_ est ajouté au nom de la clé.
  10. Dans Secret, entrez la clé secrète client que vous avez enregistrée.
  11. Pour Utilisation de la clé, sélectionnez Signature.
  12. Sélectionnez Create (Créer).

Configurer BindID comme fournisseur d’identité

Pour permettre aux utilisateurs de se connecter avec BindID, vous devez définir BindID comme fournisseur de revendications avec lequel Azure AD B2C peut communiquer via un point de terminaison. Le point de terminaison fournit des revendications utilisées par Azure AD B2C pour vérifier l’authentification de l’utilisateur sur son appareil avec un ID numérique.

Ajoutez BindID en tant que fournisseur de revendications. Pour commencer, récupérez les packs de démarrage de stratégie personnalisée à partir de GitHub, puis mettez à jour les fichiers XML dans le pack de démarrage SocialAndLocalAccounts avec votre nom de locataire Azure AD B2C :

  1. Ouvrez le dossier zip active-directory-b2c-custom-policy-starterpack-main.zip ou clonez le dépôt :

        git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Dans tous les fichiers du répertoire LocalAccounts, remplacez la chaîne yourtenant par le nom de votre locataire Azure AD B2C.

  3. Ouvrez le fichier LocalAccounts/ TrustFrameworkExtensions.xml.

  4. Recherchez l’élément ClaimsProviders. S’il n’apparaît pas, ajoutez-le sous l’élément racine.

  5. Ajoutez un nouveau ClaimsProvider semblable au fournisseur suivant :

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <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>    
    
  6. Définissez client_id avec l’ID d’application BindID que vous avez enregistré.

  7. Sélectionnez Enregistrer.

Ajouter un parcours utilisateur

Le fournisseur d’identité ne figure pas sur les pages de connexion. Si vous avez un parcours utilisateur personnalisé, passez à la section Ajoutez le fournisseur d’identité à un parcours utilisateur. Sinon, créez un modèle de parcours utilisateur en double :

  1. Dans le pack de démarrage, ouvrez le fichier LocalAccounts/ TrustFrameworkBase.xml.
  2. Recherchez et copiez l’intégralité du contenu de l’élément UserJourney comprenant Id=SignUpOrSignIn.
  3. Ouvrez le fichier LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Recherchez l’élément UserJourneys. S’il n’y a aucun élément, ajoutez-en un.
  5. Collez le contenu de l’élément UserJourney en tant qu’enfant de l’élément UserJourneys.
  6. Renommez l’ID du parcours utilisateur.

Ajoutez le fournisseur d’identité à un parcours utilisateur

Ajoutez le nouveau fournisseur d’identité au parcours utilisateur.

  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 dispose d’une liste de fournisseurs d’identité utilisés pour la connexion. L’ordre des éléments contrôle l’ordre des boutons de connexion vus par l’utilisateur.
  2. Ajoutez un élément XML ClaimsProviderSelection.
  3. Définissez la valeur TargetClaimsExchangeId sur un nom convivial.
  4. Ajoutez un élément ClaimsExchange.
  5. Définissez l’ID sur la valeur de l’ID cible d’échange des revendications. Cette action lie le bouton BindID à BindID-SignIn.
  6. Mettez à jour la valeur TechnicalProfileReferenceId sur l’ID de profil technique que vous avez créé.

Le code XML suivant montre les étapes d’orchestration d’un parcours utilisateur avec le fournisseur d’identité.

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>
    
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Configurer la stratégie de partie de confiance

La stratégie de la partie de confiance, par exemple SignUpSignIn.xml, spécifie le parcours utilisateur exécuté par Azure AD B2C. Vous pouvez également contrôler les revendications qui sont transmises à votre application en ajustant l’élément OutputClaims de l’élément TechnicalProfile PolicyProfile. Dans cet exemple, l’application reçoit les attributs utilisateur tels que le nom d’affichage, le prénom, le nom, l’e-mail, l’objectId, le fournisseur d’identité et le tenantId.

Consultez Azure-Samples/active-directory-b2c-custom-policy-starterpack.

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

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

  1. Connectez-vous au portail Azure.
  2. Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
  3. Dans la page Paramètres du portail | Répertoires + abonnements, dans la liste Nom de répertoire, recherchez votre répertoire Azure AD B2C.
  4. Sélectionnez Changer.
  5. Dans la Portail Azure, recherchez et sélectionnez Azure AD B2C.
  6. Sous Stratégies, sélectionnez Identity Experience Framework.
  7. Sélectionnez Charger une stratégie personnalisée.
  8. Chargez les fichiers dans le pack de démarrage LocalAccounts dans l’ordre suivant :
  • Stratégie de base, par exemple TrustFrameworkBase.xml
  • Stratégie de localisation, par exemple TrustFrameworkLocalization.xml
  • Stratégie d’extension, par exemple TrustFrameworkExtensions.xml.
  • Stratégie de la partie de confiance, comme SignUpOrSignIn.xml.

Tester votre stratégie personnalisée

Pour les instructions suivantes, utilisez l’annuaire qui contient votre locataire Azure AD B2C.

  1. Dans le locataire Azure AD B2C, sous Stratégies, sélectionnez Identity Experience Framework.
  2. Sous Stratégies personnalisées, sélectionnez B2C_1A_signup_signin.
  3. Pour Application, sélectionnez l’application web que vous avez inscrite. L’URL de réponse est https://jwt.ms.
  4. Sélectionnez Exécuter maintenant.
  5. Le navigateur est redirigé vers la page de connexion BindID.
  6. Entrez l’adresse e-mail du compte inscrit.
  7. Procédez à l’authentification sans application, à l’aide d’une identification biométrique (par exemple, une reconnaissance d’empreinte digitale) permise par le standard FIDO2.
  8. Le navigateur est redirigé vers https://jwt.ms. Le contenu du jeton retourné par Azure AD B2C s’affiche.

Étapes suivantes

Pour plus d’informations, consultez les articles suivants :