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.
- L’utilisateur ouvre la page de connexion Azure AD B2C, et se connecte ou s’inscrit avec un nom d’utilisateur.
- Azure AD B2C redirige l’utilisateur vers BindID à l’aide d’une requête OpenID Connect (OIDC).
- BindID authentifie l’utilisateur à l’aide de la biométrie FIDO2 d’Apple, telle qu’une empreinte digitale.
- Une réponse d’authentification décentralisée est retournée à BindID.
- La réponse OIDC est transmise à Azure AD B2C.
- 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 :
- Une souscription Microsoft Entra
- Si vous n’en avez pas déjà un, procurez-vous un compte Azure gratuit.
- Un locataire Azure AD B2C associé à l’abonnement Azure
- Un locataire BindID
- Accédez à transmitsecurity.com pour commencer.
- Inscrire une application web dans le portail Azure
- Stratégies personnalisées Azure Active Directory B2C
- Si vous ne pouvez pas utiliser les stratégies, consultez Tutoriel : créer des flux d’utilisateurs et des stratégies personnalisées dans Azure Active Directory B2C
Inscrire une application dans BindID
Pour commencer :
- Accédez à developer.bindid.io pour configurer votre application.
- 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é. |
- Lors de l’inscription, un ID client et une clé secrète client s’affichent.
- 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.
- Connectez-vous au Portail Azure en tant qu’administrateur général.
- Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
- Dans la page Paramètres du portail | Répertoires + abonnements, dans la liste Nom de répertoire, recherchez votre répertoire Azure AD B2C.
- Sélectionnez Changer.
- En haut à gauche du portail Azure, sélectionnez Tous les services.
- Recherchez et sélectionnez Azure AD B2C.
- Sélectionnez Fournisseurs d’identité.
- Sélectionnez Nouveau fournisseur OpenID Connect.
- Saisissez un Nom.
- Pour URL de métadonnées, entrez
https://signin.bindid-sandbox.io/.well-known/openid-configuration
. - Pour ID client, entrez l’ID client que vous avez enregistré.
- Pour Clé secrète client, entrez la clé secrète client que vous avez enregistrée.
- Pour l'Étendue, entrez
openid email
. - Pour Type de réponse, sélectionnez code.
- Pour Mode de réponse, sélectionnez form_post.
- Sous Mappage des revendications du fournisseur d’identité, pour ID d’utilisateur, sélectionnez
sub
. - Pour E-mail, sélectionnez
email
. - Sélectionnez Enregistrer.
Créer un flux utilisateur
- Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateurs sous Stratégies.
- Sélectionnez Nouveau flux d’utilisateurs.
- Sélectionnez le type de flux d’utilisateurs Inscription et connexion.
- Sélectionnez Create (Créer).
- Saisissez un Nom.
- Sous Fournisseurs d’identité, pour Comptes locaux, sélectionnez Aucun. Cette action désactive l’authentification par e-mail et par mot de passe.
- Pour Fournisseurs d’identité personnalisés, sélectionnez le fournisseur d’identité BindID que vous venez de créer, par exemple Connexion avec BindID.
- Sélectionnez Create (Créer).
Tester le flux utilisateur
- Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateurs.
- Sélectionnez le nouveau flux d’utilisateurs, tel que B2C_1_signupsignin.
- Pour Application, sélectionnez l’application web que vous avez inscrite. L’URL de réponse est
https://jwt.ms
. - Sélectionnez Exécuter le flux utilisateur.
- Le navigateur est redirigé vers la page de connexion BindID.
- Entrez l’adresse e-mail du compte inscrit.
- 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.
- 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.
- Connectez-vous au portail Azure.
- Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
- 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.
- Sélectionnez Changer.
- Sur la page de présentation, sous Stratégies, sélectionnez Identity Experience Framework.
- Sélectionnez Clés de stratégie.
- Sélectionnez Ajouter.
- Pour Options, sélectionnez Manuel.
- Saisissez un Nom. Le préfixe
B2C_1A_
est ajouté au nom de la clé. - Dans Secret, entrez la clé secrète client que vous avez enregistrée.
- Pour Utilisation de la clé, sélectionnez Signature.
- 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 :
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
Dans tous les fichiers du répertoire LocalAccounts, remplacez la chaîne
yourtenant
par le nom de votre locataire Azure AD B2C.Ouvrez le fichier
LocalAccounts/ TrustFrameworkExtensions.xml
.Recherchez l’élément ClaimsProviders. S’il n’apparaît pas, ajoutez-le sous l’élément racine.
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>
Définissez client_id avec l’ID d’application BindID que vous avez enregistré.
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 :
- Dans le pack de démarrage, ouvrez le fichier
LocalAccounts/ TrustFrameworkBase.xml
. - Recherchez et copiez l’intégralité du contenu de l’élément UserJourney comprenant
Id=SignUpOrSignIn
. - Ouvrez le fichier
LocalAccounts/ TrustFrameworkExtensions.xml
. - Recherchez l’élément UserJourneys. S’il n’y a aucun élément, ajoutez-en un.
- Collez le contenu de l’élément UserJourney en tant qu’enfant de l’élément UserJourneys.
- Renommez l’ID du parcours utilisateur.
Ajoutez le fournisseur d’identité à un parcours utilisateur
Ajoutez le nouveau fournisseur d’identité au parcours utilisateur.
- Recherchez l’élément d’étape d’orchestration comprenant
Type=CombinedSignInAndSignUp
ouType=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. - Ajoutez un élément XML ClaimsProviderSelection.
- Définissez la valeur TargetClaimsExchangeId sur un nom convivial.
- Ajoutez un élément ClaimsExchange.
- Définissez l’ID sur la valeur de l’ID cible d’échange des revendications. Cette action lie le bouton BindID à
BindID-SignIn
. - 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
- Connectez-vous au portail Azure.
- Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
- Dans la page Paramètres du portail | Répertoires + abonnements, dans la liste Nom de répertoire, recherchez votre répertoire Azure AD B2C.
- Sélectionnez Changer.
- Dans la Portail Azure, recherchez et sélectionnez Azure AD B2C.
- Sous Stratégies, sélectionnez Identity Experience Framework.
- Sélectionnez Charger une stratégie personnalisée.
- 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.
- Dans le locataire Azure AD B2C, sous Stratégies, sélectionnez Identity Experience Framework.
- Sous Stratégies personnalisées, sélectionnez B2C_1A_signup_signin.
- Pour Application, sélectionnez l’application web que vous avez inscrite. L’URL de réponse est
https://jwt.ms
. - Sélectionnez Exécuter maintenant.
- Le navigateur est redirigé vers la page de connexion BindID.
- Entrez l’adresse e-mail du compte inscrit.
- 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.
- 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 :