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>