Partage via


Définir un profil technique d'authentification multifacteur Microsoft Entra ID dans une stratégie personnalisée Azure AD B2C

Azure Active Directory B2C (Azure AD B2C) assure la prise en charge de la vérification d’un numéro de téléphone à l’aide d’un code de vérification ou de la vérification d’un code de mot de passe à usage unique (TOTP) basé sur la durée.

Protocol

L’attribut Name de l’élément Protocol doit être défini sur Proprietary. L’attribut handler doit contenir le nom qualifié complet d’Assembly de gestionnaire de protocole utilisé par Azure AD B2C :

Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

L'exemple suivant présente un profil technique d'authentification multifacteur Microsoft Entra ID :

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Mode Vérifier le téléphone

En mode Vérifier le téléphone, le profil technique génère et envoie un code à un numéro de téléphone, puis vérifie le code. le profil technique d'authentification multifacteur Microsoft Entra ID peut également retourner un message d'erreur. Le profil technique de validation valide les données fournies par l’utilisateur avant la poursuite du parcours de celui-ci. Avec le profil technique de validation, un message d’erreur apparaît sur une page autodéclarée. Le profil technique :

  • Ne fournit pas d’interface permettant d’interagir avec l’utilisateur. Au lieu de cela, l’interface utilisateur est appelée à partir d’un profil technique autodéclaré ou d’un contrôle d’affichage en tant que profil technique de validation.
  • Utilise le service d’authentification multifacteur Microsoft Entra pour générer et envoyer un code à un numéro de téléphone, puis vérifie le code.
  • Valide un numéro de téléphone via des SMS.

Le profil technique fournit des méthodes pour envoyer le code de vérification par SMS et vérifier le code. La capture d’écran suivante montre le déroulement du vérificateur de téléphone.

Screenshot showing TOTP flow

Envoyer un SMS

Pour vérifier un téléphone, la première étape génère un code et l’envoie au numéro de téléphone. Les options suivantes peuvent être configurées pour cette étape.

Revendications d’entrée

L’élément InputClaims contient la liste des revendications à envoyer à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
userPrincipalName Oui Identificateur de l’utilisateur propriétaire du numéro de téléphone.
phoneNumber Oui Numéro de téléphone auquel le code SMS sera envoyé.
companyName Non Nom de la société dans le SMS. S’il n’est pas indiqué, c’est le nom de votre application qui est utilisé.
locale Non Paramètres régionaux du SMS. S’ils ne sont pas indiqués, ce sont les paramètres régionaux du navigateur de l’utilisateur qui sont utilisés.

Revendications de sortie

Le fournisseur de protocole d’authentification multifacteur Microsoft Entra ne retourne aucune revendication de sortie, il n’est donc pas nécessaire d’en spécifier.

Métadonnées

L’élément Metadata contient l’attribut suivant.

Attribut Obligatoire Description
Operation Oui Doit être OneWaySMS.
Éléments d’interface utilisateur

Les métadonnées suivantes peuvent être utilisées pour configurer les messages d’erreur affichés en cas d’échec de l’envoi de SMS. Les métadonnées doivent être configurées dans le profil technique autodéclaré. Les messages d’erreur peuvent être localisés.

Attribut Obligatoire Description
UserMessageIfCouldntSendSms Non Message d’erreur utilisateur si le numéro de téléphone fourni n’accepte pas les SMS.
UserMessageIfInvalidFormat Non Message d’erreur utilisateur si le numéro de téléphone fourni n’est pas un numéro de téléphone valide.
UserMessageIfServerError Non Message d’erreur utilisateur si le serveur a rencontré une erreur interne.
UserMessageIfThrottled Non Message d’erreur utilisateur si une requête a été limitée.

Exemple : envoyer un SMS

L'exemple suivant présente l'utilisation d'un profil technique d'authentification multifacteur Microsoft Entra ID pour envoyer un code par SMS.

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

Vérifier le code

L’étape de vérification du code vérifie un code envoyé à l’utilisateur. Les options suivantes peuvent être configurées pour cette étape.

Revendications d’entrée

L’élément InputClaims contient la liste des revendications à envoyer à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
phoneNumber Oui Même numéro de téléphone qui a servi à envoyer un code. Il est également utilisé pour rechercher une session de vérification par téléphone.
verificationCode Oui Code de vérification fourni par l’utilisateur à vérifier.

Revendications de sortie

Le fournisseur de protocole d’authentification multifacteur Microsoft Entra ne retourne aucune revendication de sortie, il n’est donc pas nécessaire d’en spécifier.

Métadonnées

L’élément Metadata contient l’attribut suivant.

Attribut Obligatoire Description
Operation Oui Doit être Verify.
Éléments d’interface utilisateur

Les métadonnées suivantes peuvent être utilisées pour configurer les messages d’erreur affichés en cas d’échec de la vérification du code. Les métadonnées doivent être configurées dans le profil technique autodéclaré. Les messages d’erreur peuvent être localisés.

Attribut Obligatoire Description
UserMessageIfMaxAllowedCodeRetryReached Non Message d’erreur utilisateur si l’utilisateur a effectué trop de tentatives de code de vérification.
UserMessageIfServerError Non Message d’erreur utilisateur si le serveur a rencontré une erreur interne.
UserMessageIfThrottled Non Message d’erreur utilisateur si la requête est limitée.
UserMessageIfWrongCodeEntered Non Message d’erreur utilisateur si le code entré pour la vérification est incorrect.

Exemple : vérifier un code

L'exemple suivant montre un profil technique d'authentification multifacteur Microsoft Entra ID utilisé pour vérifier le code.

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

Mode TOTP

Dans ce mode, l’utilisateur doit installer toute application authentificateur qui prend en charge la vérification du mot de passe à usage unique (TOTP), tel que l’application Microsoft Authenticator, sur un appareil dont il est propriétaire.

Lors de la première inscription ou connexion, l’utilisateur analyse un code QR, ouvre un lien profond ou entre le code manuellement à l’aide de l’application authentificateur. Pour vérifier le code TOTP, utilisez les profils techniques Commencer à vérifier OTP suivi de Vérifier TOTP.

Pour les connexions suivantes, utilisez la méthode Obtenir des appareils disponibles pour vérifier si l’utilisateur a déjà inscrit son appareil. Si le nombre d’appareils disponibles est supérieur à zéro, cela indique que l’utilisateur s’est inscrit avant. Dans ce cas, l’utilisateur doit taper le code TOTP qui apparaît dans l’application authentificateur.

Le profil technique :

  • Ne fournit pas d’interface permettant d’interagir avec l’utilisateur. Au lieu de cela, l’interface utilisateur est appelée à partir d’un profil technique auto-déclaré , avec les contrôles d’affichage TOTP.
  • Utilise le service d’authentification multifacteur Microsoft Entra pour valider le code TOTP.
  • Vérifie si un utilisateur a déjà inscrit son appareil.

La capture d’écran suivante montre un processus d’inscription et de vérification TOTP. Il commence par vérifier le nombre d’appareils disponibles. Si le nombre d’appareils disponibles est égal à zéro, l’utilisateur passe à l’étape d’orchestration d’inscription. Dans le cas contraire, l’utilisateur passe à l’étape de l’orchestration de vérification.

Screenshot showing TOTP flow.

Récupération des appareils disponibles

Le mode obtenir un appareil disponible vérifie le nombre d’appareils disponibles pour l’utilisateur. Si le nombre d’appareils disponibles est égal à zéro, cela signifie que l’utilisateur n’a pas encore inscrit.

Revendications d’entrée

L’élément InputClaims contient la liste des revendications à envoyer à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
userPrincipalName Oui Nom d’utilisateur principal.

Revendications de sortie

L’élément de revendications de sortie contient la liste des revendications à retourner à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
numberOfAvailableDevices Oui Nombre d’appareils disponibles pour l’utilisateur.

Métadonnées

L’élément Metadata contient l’attribut suivant.

Attribut Obligatoire Description
Operation Oui Doit être GetAvailableDevices.

Exemple : récupération des appareils disponibles

L'exemple suivant présente un profil technique d'authentification multifacteur Microsoft Entra ID utilisé pour obtenir le nombre d'appareils disponibles.

<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
  <DisplayName>Get Available Devices</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GetAvailableDevices</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
  </OutputClaims>
</TechnicalProfile>

Commencer à vérifier TOTP

Cela démarre le processus de vérification. Ce profil technique de validation est appelé à partir du profil technique auto-déclaré qui présente et vérifie les codes TOTP. Ce profil technique de validation doit être suivi d’un appel pour vérifier les profils techniques de validation TOTP.

Revendications d’entrée

L’élément InputClaims contient la liste des revendications à envoyer à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
userPrincipalName Oui Nom d’utilisateur principal.
objectId Oui ID de l’objet utilisateur.
secretKey Oui Clé secrète de l’utilisateur. Cette clé est stockée dans le profil de l’utilisateur dans le répertoire Azure AD B2C et est partagée avec l’application authentificateur. L’application authentificateur utilise le secret pour générer le code TOTP. Ce profil technique utilise le secret pour vérifier le code TOTP.

Revendications de sortie

Le fournisseur de protocole d’authentification multifacteur Microsoft Entra ne retourne aucune revendication de sortie, il n’est donc pas nécessaire d’en spécifier.

Métadonnées

L’élément Metadata contient l’attribut suivant.

Attribut Obligatoire Description
Operation Oui Doit être BeginVerifyOTP.

Exemple : Commencer à vérifier TOTP

L'exemple suivant présente un profil technique d'authentification multifacteur Microsoft Entra ID utilisé pour commencer le processus de vérification du code TOTP.

<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
  <DisplayName>Begin verify TOTP"</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">BeginVerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="secretKey" />
    <InputClaim ClaimTypeReferenceId="objectId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
</TechnicalProfile>

Vérifier TOTP

La méthode Vérifier TOTP vérifie un code TOTP. Ce profil technique de validation est appelé à partir du profil technique auto-déclaré qui présente et vérifie les codes TOTP. Ce profil technique de validation doit être précédé d’un appel aux profils techniques de validation Commencer à vérifier TOTP.

Revendications d’entrée

L’élément InputClaims contient la liste des revendications à envoyer à l’authentification multifacteur Microsoft Entra. Vous pouvez également faire correspondre le nom de votre revendication au nom défini dans le profil technique MFA.

ClaimReferenceId Obligatoire Description
otpCode Oui Code TOTP fourni par l’utilisateur.

Revendications de sortie

Le fournisseur de protocole d’authentification multifacteur Microsoft Entra ne retourne aucune revendication de sortie, il n’est donc pas nécessaire d’en spécifier.

Métadonnées

L’élément Metadata contient l’attribut suivant.

Attribut Obligatoire Description
Operation Oui Doit être VerifyOTP.

Exemple : Vérifier TOTP

L'exemple suivant montre un profil technique d'authentification multifacteur Microsoft Entra ID utilisé pour vérifier un code TOTP.

<TechnicalProfile Id="AzureMfa-VerifyOTP">
  <DisplayName>Verify OTP</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otpCode" />
  </InputClaims>
</TechnicalProfile>

Étapes suivantes