Definieren eines technischen CAPTCHA-Profils in einer benutzerdefinierten Azure Active Directory B2C-Richtlinie
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Mit einem vollständig automatisierten Öffentlichen Turing-Tests können Computer und Human Apart (CAPTCHA) technische Profile Azure Active Directory B2C (Azure AD B2C) automatisierte Angriffe verhindern. Das technische PROFIL CAPTCHA von Azure AD B2C unterstützt sowohl Audio- als auch visuelle CAPTCHA-Herausforderungstypen.
Protocol
Das Name-Attribut des Protocol-Elements muss auf Proprietary
festgelegt werden. Das Handler-Attribut muss den vollqualifizierten Namen der Protokollhandlerassembly enthalten, die von Azure AD B2C für CAPTCHA verwendet wird: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Hinweis
Dieses Feature befindet sich in der öffentlichen Vorschau.
Das folgende Beispiel zeigt ein selbstbestätigtes technisches Profil für eine Registrierung per 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" />
CAPTCHA Technische Profiloperationen
Die technischen Profilvorgänge von CAPTCHA verfügen über zwei Vorgänge:
Der Abfragevorgang generiert die CAPTCHA-Codezeichenfolge und zeigt sie dann mithilfe eines CAPTCHA-Anzeigesteuerelements auf der Benutzeroberfläche an. Die Anzeige enthält ein Eingabetextfeld. Mit diesem Vorgang wird der Benutzer aufgefordert, die zeichen, die er sehen oder hören, in das Eingabetextfeld einzugeben. Der Benutzer kann bei Bedarf zwischen visuellen und Audio-Abfragetypen wechseln.
Überprüfen Sie, ob der Codevorgang die Vom Benutzer eingegebenen Zeichen überprüft.
Herausforderung abrufen
Der erste Vorgang generiert die CAPTCHA-Codezeichenfolge und zeigt sie dann auf der Benutzeroberfläche an.
Eingabeansprüche
Das InputClaims-Element enthält eine Liste der Ansprüche, die an den CAPTCHA-Dienst von Azure AD B2C gesendet werden sollen.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
challengeType | Nein | Der CAPTCHA-Abfragetyp, Audio oder Visual (Standard). |
azureregion | Ja | Die Dienstregion, die der CAPTCHA-Abfrageanforderung dient. |
Anzeigeansprüche
Das DisplayClaims-Element enthält eine Liste der Ansprüche, die auf dem Bildschirm angezeigt werden sollen, damit der Benutzer sehen kann. Beispielsweise wird dem Benutzer der CAPTCHA-Abfragecode zum Lesen angezeigt.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
challengeString | Ja | Der CAPTCHA-Abfragecode. |
Ausgabeansprüche
Das OutputClaims-Element enthält eine Liste der Ansprüche, die vom technischen PROFIL CAPTCHA zurückgegeben werden.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
challengeId | Ja | Ein eindeutiger Bezeichner für CAPTCHA-Abfragecode. |
challengeString | Ja | Der CAPTCHA-Abfragecode. |
azureregion | Ja | Die Dienstregion, die der CAPTCHA-Abfrageanforderung dient. |
Metadaten
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der Wert muss "GetChallenge" sein. |
Marke | Ja | Der Wert muss HIP sein. |
Beispiel: Generieren von CAPTCHA-Code
Das folgende Beispiel zeigt ein technisches CAPTCHA-Profil, das Sie zum Generieren eines Codes verwenden:
<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>
Überprüfen der Herausforderung
Der zweite Vorgang überprüft die CAPTCHA-Herausforderung.
Eingabeansprüche
Das InputClaims-Element enthält eine Liste der Ansprüche, die an den CAPTCHA-Dienst von Azure AD B2C gesendet werden sollen.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
challengeType | Nein | Der CAPTCHA-Abfragetyp, Audio oder Visual (Standard). |
challengeId | Ja | Ein eindeutiger Bezeichner für CAPTCHA, der für die Sitzungsüberprüfung verwendet wird. Aufgefüllt aus dem GetChallenge-Anruf . |
captchaEntered | Ja | Der Abfragecode, den der Benutzer in das Abfragetextfeld auf der Benutzeroberfläche eingibt. |
azureregion | Ja | Die Dienstregion, die der CAPTCHA-Abfrageanforderung dient. Aufgefüllt aus dem GetChallenge-Anruf . |
Anzeigeansprüche
Das DisplayClaims-Element enthält eine Liste der Ansprüche, die auf dem Bildschirm angezeigt werden sollen, um eine Eingabe des Benutzers zu sammeln.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
captchaEntered | Ja | Der vom Benutzer eingegebene CAPTCHA-Abfragecode. |
Ausgabeansprüche
Das OutputClaims-Element enthält eine Liste der Ansprüche, die vom technischen Captcha-Profil zurückgegeben werden.
ClaimReferenceId | Erforderlich | Beschreibung |
---|---|---|
challengeId | Ja | Ein eindeutiger Bezeichner für CAPTCHA, der für die Sitzungsüberprüfung verwendet wird. |
isCaptchaSolved | Ja | Ein Kennzeichen, das angibt, ob die CAPTCHA-Herausforderung erfolgreich gelöst wird. |
reason | Ja | Wird verwendet, um dem Benutzer mitzuteilen, ob der Versuch, die Herausforderung zu lösen, erfolgreich ist oder nicht. |
Metadaten
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der Wert muss "VerifyChallenge" sein. |
Marke | Ja | Der Wert muss HIP sein. |
Beispiel: Überprüfen des CAPTCHA-Codes
Das folgende Beispiel zeigt ein technisches CAPTCHA-Profil, das Sie zum Überprüfen eines CAPTCHA-Codes verwenden:
<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>