Partilhar via


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

Nota

No Azure Ative Directory B2C, as políticas personalizadas são projetadas principalmente para lidar com cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuário internos. Se você não tiver feito isso, saiba mais sobre o pacote inicial de políticas personalizadas em Introdução às políticas personalizadas no Ative Directory B2C.

Um Teste de Turing Público Completamente Automatizado para Dizer Computadores e Seres Humanos (CAPTCHA) permite que o Azure Ative Directory B2C (Azure AD B2C) evite ataques automatizados. O perfil técnico CAPTCHA do Azure AD B2C suporta os tipos de desafios CAPTCHA á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

Nota

Esta funcionalidade está em pré-visualização pública

O exemplo a seguir mostra um perfil técnico autodeclarado para inscrição por 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" />

Operações de perfil técnico CAPTCHA

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

  • A operação Get challenge gera a cadeia 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. Esta operação direciona o usuário para inserir os caracteres que 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.

  • Verificar operação de código verifica os caracteres inseridos pelo usuário.

Receba um desafio

A primeira operação gera a cadeia 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 Necessário Description
challengeType Não O tipo de desafio CAPTCHA, Audio 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 Necessário Description
challengeString 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 Necessário Description
challengeId Sim Um identificador exclusivo para o código de desafio CAPTCHA.
challengeString Sim O código de desafio CAPTCHA.
azureregion Sim A região de serviço que atende à solicitação de desafio CAPTCHA.

Metadados

Atributo Necessário Description
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 Necessário Description
challengeType Não O tipo de desafio CAPTCHA, Audio ou Visual (padrão).
challengeId Sim Um identificador exclusivo para CAPTCHA usado para verificação de sessão. Preenchido a partir da chamada GetChallenge .
captchaEntrou 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 Necessário Description
captchaEntrou 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 Necessário Description
challengeId Sim Um identificador exclusivo para CAPTCHA usado para verificação de sessão.
isCaptchaSolved Sim Um sinalizador que indica 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 Necessário Description
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óximos passos