Definir um perfil técnico CAPTCHA em uma política personalizada do Azure Active Directory B2C
Observação
No Azure Active Directory B2C, as políticas personalizadas são projetadas principalmente para tratar de cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuários predefinidos. Se você ainda não fez isso, saiba mais sobre o pacote de início de política personalizado em Introdução às políticas personalizadas no Active Directory B2C.
Um Completamente Automatizado Testes de Turing Públicos para Dizer Computadores e Perfis Técnicos CAPTCHA (Computador e Human Apart) permite que o Azure Active Directory B2C (Azure AD B2C) impeça ataques automatizados. O perfil técnico CAPTCHA do Azure AD B2C dá suporte a tipos de desafios CAPTCHA de áudio e visual.
Protocolo
O atributo Name do elemento Protocol precisa ser definido como Proprietary
. O atributo handler deve conter o nome totalmente qualificado do assembly do manipulador de protocolo usado pelo Azure AD B2C, para CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Observação
Este recurso está em visualização pública
O exemplo a seguir mostra um perfil técnico autodeclarado para email de inscrição:
<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" />
Operações do perfil técnico CAPTCHA
As operações do perfil técnico CAPTCHA possuem duas operações:
A operação Get challenge gera a cadeia de caracteres de código CAPTCHA e, em seguida, a exibe na interface do usuário usando um controle de exibição CAPTCHA. A exibição inclui uma caixa de texto de entrada. Essa operação direciona o usuário para inserir os caracteres que ele vê ou ouve na caixa de texto de entrada. O usuário pode alternar entre os tipos de desafio visual e áudio, conforme necessário.
A operação de verificação de código verifica os caracteres inseridos pelo usuário.
Desafio
A primeira operação gera a cadeia de caracteres de código CAPTCHA e, em seguida, a exibe na interface do usuário.
Declarações de entrada
O elemento InputClaims contém uma lista de declarações a serem enviadas ao serviço CAPTCHA do Azure AD B2C.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
challengeType | Não | O tipo de desafio CAPTCHA, Áudio ou Visual (padrão). |
AzureRegion | Sim | A região de serviço que atende à solicitação de desafio CAPTCHA. |
Exibir declarações
O elemento DisplayClaims contém uma lista de declarações a serem apresentadas na tela para o usuário ver. Por exemplo, o usuário é apresentado com o código de desafio CAPTCHA para ler.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
desafioString | Sim | O código de desafio CAPTCHA. |
Declarações de saída
O elemento OutputClaims contém uma lista de declarações retornadas pelo perfil técnico CAPTCHA.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
desafioId | Sim | Um identificador exclusivo para o código de desafio CAPTCHA. |
desafioString | Sim | O código de desafio CAPTCHA. |
AzureRegion | Sim | A região de serviço que atende à solicitação de desafio CAPTCHA. |
Metadados
Atributo | Obrigatório | Descrição |
---|---|---|
Operação | Sim | O valor deve ser GetChallenge. |
Marca | Sim | O valor deve ser HIP. |
Exemplo: Gerar código CAPTCHA
O exemplo a seguir mostra um perfil técnico CAPTCHA que você usa para gerar um código:
<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>
Verificar desafio
A segunda operação verifica o desafio CAPTCHA.
Declarações de entrada
O elemento InputClaims contém uma lista de declarações a serem enviadas ao serviço CAPTCHA do Azure AD B2C.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
challengeType | Não | O tipo de desafio CAPTCHA, Áudio ou Visual (padrão). |
desafioId | Sim | Um identificador exclusivo para CAPTCHA usado para verificação de sessão. Preenchido a partir da chamada GetChallenge . |
captchaInserido | Sim | O código de desafio que o usuário insere na caixa de texto de desafio na interface do usuário. |
AzureRegion | Sim | A região de serviço que atende à solicitação de desafio CAPTCHA. Preenchido a partir da chamada GetChallenge . |
Exibir declarações
O elemento DisplayClaims contém uma lista de declarações a serem apresentadas na tela para coletar uma entrada do usuário.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
captchaInserido | Sim | O código de desafio CAPTCHA inserido pelo usuário. |
Declarações de saída
O elemento OutputClaims contém uma lista de declarações retornadas pelo perfil técnico captcha.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
desafioId | Sim | Um identificador exclusivo para CAPTCHA usado para verificação de sessão. |
isCaptchaSolved | Sim | Um sinalizador indicando se o desafio CAPTCHA foi resolvido com sucesso. |
reason | Sim | Usado para comunicar ao usuário se a tentativa de resolver o desafio é bem-sucedida ou não. |
Metadados
Atributo | Obrigatório | Descrição |
---|---|---|
Operação | Sim | O valor deve ser VerifyChallenge. |
Marca | Sim | O valor deve ser HIP. |
Exemplo: Verificar o código CAPTCHA
O exemplo a seguir mostra um perfil técnico CAPTCHA que você usa para verificar um código 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>