Compartilhar via


Definir um perfil técnico CAPTCHA em uma política personalizada do Azure Active Directory B2C

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.

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 perfil técnico CAPTCHA (Testes públicos de Turing totalmente automatizados para diferenciar computador e humanos) permite que o Azure AD B2C (Azure Active Directory B2C) evite 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 de manipulador 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

Esse recurso está em pré-visualização pública

O exemplo a seguir mostra um perfil técnico autodeclarado para inscrição por email:

<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 de perfil técnico CAPTCHA

As operações de perfil técnico CAPTCHA têm duas operações:

  • Obter a operação de desafio gera a cadeia de caracteres de código CAPTCHA e, em seguida, exibe-a 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 orienta o usuário a 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 de áudio conforme necessário.

  • Verifique se a operação de código verifica a entrada de caracteres pelo usuário.

Obter desafio

A primeira operação gera a cadeia de caracteres de código CAPTCHA e 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.

ReivindicaçãoReferênciaId Obrigatório Descrição
tipoDeDesafio 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 a ser lido.

ReivindicaçãoReferênciaId 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.

ReivindicaçãoReferênciaId 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 o 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.

ReivindicaçãoReferênciaId Obrigatório Descrição
tipoDeDesafio 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. Populado 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. Populado 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.

ReivindicaçãoReferênciaId 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.

ReivindicaçãoReferênciaId Obrigatório Descrição
desafioId Sim Um identificador exclusivo para CAPTCHA usado para verificação de sessão.
isCaptchaResolvido Sim Um sinalizador que indica se o desafio CAPTCHA foi resolvido com êxito.
razão Sim Usado para comunicar ao usuário se a tentativa de resolver o desafio foi 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