Partager via


Définir un profil technique SSPR Microsoft Entra ID dans une stratégie personnalisée Azure AD B2C

Remarque

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.

Azure AD B2C (Azure Active Directory B2C) prend en charge la vérification d’une adresse e-mail dans le cadre de la réinitialisation de mot de passe en libre-service (SSPR). Utilisez le profil technique SSPR Microsoft Entra ID pour générer et envoyer un code à une adresse e-mail, puis vérifier le code. Le profil technique SSPR 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.

Ce 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 Microsoft Entra SSPR pour générer et envoyer un code à une adresse électronique, puis vérifie le code.
  • Valide une adresse e-mail au moyen d’un code de vérification.

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.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

L’exemple suivant montre un profil technique SSPR Microsoft Entra ID :

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Envoi de courrier électronique

Le premier mode de ce profil technique consiste à générer un code et à l’envoyer. Les options suivantes peuvent être configurées pour ce mode.

Revendications d’entrée

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

ClaimReferenceId Obligatoire Description
emailAddress Oui Identificateur de l’utilisateur propriétaire de l’adresse e-mail. La propriété PartnerClaimType de la revendication d’entrée doit être définie sur emailAddress.

L’élément InputClaimsTransformations peut contenir une collection d’éléments InputClaimsTransformation utilisés pour modifier les revendications d’entrée ou en générer de nouvelles avant l’envoi au service Microsoft Entra SSPR.

Revendications de sortie

Comme le fournisseur de protocole Microsoft Entra SSPR ne retourne pas d’élément OutputClaims, il n’est pas nécessaire de spécifier des revendications de sortie. Vous pouvez toutefois inclure des revendications non retournées par le fournisseur d’identité Microsoft Entra SSPR, à condition de définir l’attribut DefaultValue.

L’élément OutputClaimsTransformations peut contenir une collection d’éléments OutputClaimsTransformation qui sont utilisés pour modifier les revendications de sortie ou en générer de nouvelles.

Métadonnées

Attribut Obligatoire Description
Opération Oui Doit être SendCode.

É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
UserMessageIfInternalError 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 e-mail

L’exemple suivant montre l’utilisation d’un profil technique SSPR Microsoft Entra ID pour envoyer un code par e-mail.

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">SendCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>

Vérifier le code

Le deuxième mode de ce profil technique consiste à vérifier un code. Les options suivantes peuvent être configurées pour ce mode.

Revendications d’entrée

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

ClaimReferenceId Obligatoire Description
emailAddress Oui Même adresse e-mail que celle ayant servi à envoyer un code. Il est également utilisé pour rechercher une session de vérification par e-mail. La propriété PartnerClaimType de la revendication d’entrée doit être définie sur emailAddress.
verificationCode Oui Code de vérification fourni par l’utilisateur à vérifier. La propriété PartnerClaimType de la revendication d’entrée doit être définie sur verificationCode.

L’élément InputClaimsTransformations peut contenir une collection d’éléments InputClaimsTransformation utilisés pour modifier les revendications d’entrée ou en générer de nouvelles avant d’appeler le service Microsoft Entra SSPR.

Revendications de sortie

Comme le fournisseur de protocole Microsoft Entra SSPR ne retourne pas d’élément OutputClaims, il n’est pas nécessaire de spécifier des revendications de sortie. Vous pouvez toutefois inclure des revendications non retournées par le fournisseur d’identité Microsoft Entra SSPR, à condition de définir l’attribut DefaultValue.

L’élément OutputClaimsTransformations peut contenir une collection d’éléments OutputClaimsTransformation qui sont utilisés pour modifier les revendications de sortie ou en générer de nouvelles.

Métadonnées

Attribut Obligatoire Description
Opération Oui Doit être VerifyCode

É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
UserMessageIfChallengeExpired Message à afficher à l'utilisateur si la session de vérification du code a expiré. Soit le code a expiré, soit le code n’a jamais été généré pour un identificateur donné.
UserMessageIfInternalError Message d’erreur utilisateur si le serveur a rencontré une erreur interne.
UserMessageIfThrottled Message d’erreur utilisateur si une requête a été limitée.
UserMessageIfVerificationFailedNoRetry Message à afficher à l’utilisateur s’il a fourni un code non valide et que l’utilisateur n’est pas autorisé à fournir le code correct.
UserMessageIfVerificationFailedRetryAllowed Message à afficher à l’utilisateur s’il a fourni un code non valide et que l’utilisateur est autorisé à fournir le code correct.

Exemple : vérifier un code

L’exemple suivant montre l’utilisation d’un profil technique SSPR Microsoft Entra ID pour vérifier le code.

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>