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>