Compartilhar via


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>

Próximas etapas