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>