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.
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" />
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.
Der erste Vorgang generiert die CAPTCHA-Codezeichenfolge und zeigt sie dann auf der Benutzeroberfläche an.
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. |
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. |
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. |
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der Wert muss "GetChallenge" sein. |
Marke | Ja | Der Wert muss HIP sein. |
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>
Der zweite Vorgang überprüft die CAPTCHA-Herausforderung.
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 . |
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. |
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. |
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Vorgang | Ja | Der Wert muss "VerifyChallenge" sein. |
Marke | Ja | Der Wert muss HIP sein. |
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>