Udostępnij za pośrednictwem


Definiowanie profilu technicznego CAPTCHA w zasadach niestandardowych usługi Azure Active Directory B2C

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Całkowicie zautomatyzowane publiczne testy Turing do opowiedzenia komputerów i ludzkich (CAPTCHA) profilów technicznych umożliwiają usłudze Azure Active Directory B2C (Azure AD B2C) zapobieganie automatycznym atakom. Profil techniczny CAPTCHA usługi Azure AD B2C obsługuje zarówno typy wyzwań audio, jak i wizualnych CAPTCHA.

Protokół

Atrybut Name elementu Protocol musi być ustawiony na Proprietary. Atrybut programu obsługi musi zawierać w pełni kwalifikowaną nazwę zestawu obsługi protokołu używanego przez usługę Azure AD B2C dla capTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Uwaga

Ta funkcja jest dostępna w publicznej wersji zapoznawczej

W poniższym przykładzie pokazano własny profil techniczny rejestracji w wiadomości 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" />

Operacje profilu technicznego CAPTCHA

Operacje profilu technicznego CAPTCHA mają dwie operacje:

  • Operacja get challenge generuje ciąg kodu CAPTCHA, a następnie wyświetla go w interfejsie użytkownika przy użyciu kontrolki wyświetlania CAPTCHA. Ekran zawiera pole tekstowe danych wejściowych. Ta operacja kieruje użytkownika do wprowadzania znaków, które widzą lub słyszą w polu tekstowym wejściowym. Użytkownik może w razie potrzeby przełączać się między typami wyzwań wizualnych i dźwiękowych.

  • Sprawdź, czy operacja kodu weryfikuje znaki wejściowe przez użytkownika.

Uzyskaj wyzwanie

Pierwsza operacja generuje ciąg kodu CAPTCHA, a następnie wyświetla go w interfejsie użytkownika.

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do usługi CAPTCHA usługi Azure AD B2C.

ClaimReferenceId Wymagania opis
challengeType Nie. Typ wyzwania CAPTCHA, Audio lub Visual (wartość domyślna).
azureregion Tak Region usługi, który obsługuje żądanie wyzwania CAPTCHA.

Wyświetlanie oświadczeń

Element DisplayClaims zawiera listę oświadczeń, które mają być prezentowane na ekranie, aby użytkownik mógł zobaczyć. Na przykład użytkownik jest wyświetlany z kodem wyzwania CAPTCHA do odczytania.

ClaimReferenceId Wymagania opis
challengeString Tak Kod wyzwania CAPTCHA.

Oświadczenia wyjściowe

Element OutputClaims zawiera listę oświadczeń zwróconych przez profil techniczny CAPTCHA.

ClaimReferenceId Wymagania opis
challengeId Tak Unikatowy identyfikator kodu wyzwania CAPTCHA.
challengeString Tak Kod wyzwania CAPTCHA.
azureregion Tak Region usługi, który obsługuje żądanie wyzwania CAPTCHA.

Metadane

Atrybut Wymagania opis
Operation Tak Wartość musi być GetChallenge.
Marka Tak Wartość musi mieć wartość HIP.

Przykład: generowanie kodu CAPTCHA

W poniższym przykładzie przedstawiono profil techniczny CAPTCHA używany do generowania kodu:

<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>

Weryfikowanie wyzwania

Druga operacja weryfikuje wyzwanie CAPTCHA.

Oświadczenia wejściowe

Element InputClaims zawiera listę oświadczeń wysyłanych do usługi CAPTCHA usługi Azure AD B2C.

ClaimReferenceId Wymagania opis
challengeType Nie. Typ wyzwania CAPTCHA, Audio lub Visual (wartość domyślna).
challengeId Tak Unikatowy identyfikator CAPTCHA używany do weryfikacji sesji. Wypełnione z wywołania GetChallenge .
captchaEntered Tak Kod wyzwania, który użytkownik wprowadza w polu tekstowym wyzwanie w interfejsie użytkownika.
azureregion Tak Region usługi, który obsługuje żądanie wyzwania CAPTCHA. Wypełnione z wywołania GetChallenge .

Wyświetlanie oświadczeń

Element DisplayClaims zawiera listę oświadczeń, które mają być prezentowane na ekranie w celu zbierania danych wejściowych od użytkownika.

ClaimReferenceId Wymagania opis
captchaEntered Tak Kod wyzwania CAPTCHA wprowadzony przez użytkownika.

Oświadczenia wyjściowe

Element OutputClaims zawiera listę oświadczeń zwróconych przez profil techniczny captcha.

ClaimReferenceId Wymagania opis
challengeId Tak Unikatowy identyfikator CAPTCHA używany do weryfikacji sesji.
isCaptchaSolved Tak Flaga wskazująca, czy wyzwanie CAPTCHA zostało pomyślnie rozwiązane.
reason Tak Służy do komunikowania się użytkownikowi, czy próba rozwiązania problemu zakończyła się powodzeniem, czy też nie.

Metadane

Atrybut Wymagania opis
Operation Tak Wartość musi mieć wartość VerifyChallenge.
Marka Tak Wartość musi mieć wartość HIP.

Przykład: Weryfikowanie kodu CAPTCHA

W poniższym przykładzie przedstawiono profil techniczny CAPTCHA używany do weryfikowania kodu 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>

Następne kroki