Partager via


Définir un profil technique CAPTCHA dans une stratégie personnalisée Azure Active Directory 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.

Un test de turing public complètement automatisé pour indiquer aux profils techniques CAPTCHA (Computer and Human Apart) permet à Azure Active Directory B2C (Azure AD B2C) d’empêcher les attaques automatisées. Le profil technique CAPTCHA d’Azure AD B2C prend en charge les types de défis CAPTCHA audio et visuel.

Protocol

L’attribut Name de l’élément Protocol doit être défini sur Proprietary. L’attribut du gestionnaire doit contenir le nom complet de l’assembly de gestionnaire de protocole utilisé par Azure AD B2C, pour CAPTCHA : Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Remarque

Cette fonctionnalité est en préversion publique

L’exemple suivant montre un profil technique autodéclaré pour l’inscription par e-mail :

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

Opérations de profil technique CAPTCHA

Les opérations de profil technique CAPTCHA ont deux opérations :

  • Obtenir l’opération de défi génère la chaîne de code CAPTCHA, puis l’affiche sur l’interface utilisateur à l’aide d’un contrôle d’affichage CAPTCHA. L’affichage inclut une zone de texte d’entrée. Cette opération permet à l’utilisateur d’entrer les caractères qu’il voit ou entend dans la zone de texte d’entrée. L’utilisateur peut basculer entre les types de défis visuels et audio en fonction des besoins.

  • Vérifiez que l’opération de code vérifie les caractères entrés par l’utilisateur.

Obtenir un défi

La première opération génère la chaîne de code CAPTCHA, puis l’affiche sur l’interface utilisateur.

Revendications d’entrée

L’élément InputClaims contient une liste de revendications à envoyer au service CAPTCHA d’Azure AD B2C.

ClaimReferenceId Obligatoire Description
challengeType Non Type de défi CAPTCHA, audio ou visuel (par défaut).
azureregion Oui Région de service qui répond à la demande de défi CAPTCHA.

Revendications d’affichage

L’élément DisplayClaims contient une liste de revendications à présenter à l’écran pour que l’utilisateur puisse voir. Par exemple, l’utilisateur est présenté avec le code de défi CAPTCHA à lire.

ClaimReferenceId Obligatoire Description
challengeString Oui Code de défi CAPTCHA.

Revendications de sortie

L’élément OutputClaims contient une liste de revendications retournées par le profil technique CAPTCHA.

ClaimReferenceId Obligatoire Description
challengeId Oui Identificateur unique pour le code de défi CAPTCHA.
challengeString Oui Code de défi CAPTCHA.
azureregion Oui Région de service qui répond à la demande de défi CAPTCHA.

Métadonnées

Attribut Obligatoire Description
Opération Oui La valeur doit être GetChallenge.
Marque Oui La valeur doit être HIP.

Exemple : Générer du code CAPTCHA

L’exemple suivant montre un profil technique CAPTCHA que vous utilisez pour générer un code :

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>GetChallenge</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <Metadata>
    <Item Key="Operation">GetChallenge</Item>
    <Item Key="Brand">HIP</Item>
  </Metadata>

  <InputClaims>
    <InputClaim ClaimTypeReferenceId="challengeType" />
  </InputClaims>

  <DisplayClaims>
    <DisplayClaim ClaimTypeReferenceId="challengeString" />
  </DisplayClaims>

  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="challengeId" />
    <OutputClaim ClaimTypeReferenceId="challengeString" PartnerClaimType="ChallengeString" />
    <OutputClaim ClaimTypeReferenceId="azureregion" />
  </OutputClaims>

</TechnicalProfile>

Vérifier le défi

La deuxième opération vérifie le défi CAPTCHA.

Revendications d’entrée

L’élément InputClaims contient une liste de revendications à envoyer au service CAPTCHA d’Azure AD B2C.

ClaimReferenceId Obligatoire Description
challengeType Non Type de défi CAPTCHA, audio ou visuel (par défaut).
challengeId Oui Identificateur unique pour CAPTCHA utilisé pour la vérification de session. Rempli à partir de l’appel GetChallenge .
captcha Entrée Oui Code de défi que l’utilisateur entre dans la zone de texte challenge sur l’interface utilisateur.
azureregion Oui Région de service qui répond à la demande de défi CAPTCHA. Rempli à partir de l’appel GetChallenge .

Revendications d’affichage

L’élément DisplayClaims contient une liste de revendications à présenter à l’écran pour collecter une entrée auprès de l’utilisateur.

ClaimReferenceId Obligatoire Description
captcha Entrée Oui Code de défi CAPTCHA entré par l’utilisateur.

Revendications de sortie

L’élément OutputClaims contient une liste de revendications retournées par le profil technique captcha.

ClaimReferenceId Obligatoire Description
challengeId Oui Identificateur unique pour CAPTCHA utilisé pour la vérification de session.
isCaptchaSolved Oui Indicateur indiquant si le défi CAPTCHA est correctement résolu.
reason Oui Utilisé pour communiquer à l’utilisateur si la tentative de résolution du problème réussit ou non.

Métadonnées

Attribut Obligatoire Description
Opération Oui La valeur doit être VerifyChallenge.
Marque Oui La valeur doit être HIP.

Exemple : Vérifier le code CAPTCHA

L’exemple suivant montre un profil technique CAPTCHA que vous utilisez pour vérifier un code CAPTCHA :

  <TechnicalProfile Id="HIP-VerifyChallenge">
    <DisplayName>Verify Code</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
      <Item Key="Brand">HIP</Item>
      <Item Key="Operation">VerifyChallenge</Item>
    </Metadata>

    <InputClaims>
      <InputClaim ClaimTypeReferenceId="challengeType" DefaultValue="Visual" />
      <InputClaim ClaimTypeReferenceId="challengeId" />
      <InputClaim ClaimTypeReferenceId="captchaEntered" PartnerClaimType="inputSolution" Required="true" />
      <InputClaim ClaimTypeReferenceId="azureregion" />
    </InputClaims>

    <DisplayClaims>
      <DisplayClaim ClaimTypeReferenceId="captchaEntered" />
    </DisplayClaims>

    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="challengeId" />
      <OutputClaim ClaimTypeReferenceId="isCaptchaSolved" PartnerClaimType="solved" />
      <OutputClaim ClaimTypeReferenceId="reason" PartnerClaimType="reason" />
    </OutputClaims>

  </TechnicalProfile>

Étapes suivantes