Freigeben über


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>

Nächste Schritte