Compartir a través de


Definición de un perfil técnico CAPTCHA en una directiva personalizada de Azure Active Directory B2C

Nota:

En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.

Las pruebas de turing públicas completamente automatizadas para indicar a los perfiles técnicos de Computer y Human Apart (CAPTCHA) permiten a Azure Active Directory B2C (Azure AD B2C) evitar ataques automatizados. El perfil técnico CAPTCHA de Azure AD B2C admite tipos de desafíos CAPTCHA de audio y visual.

Protocolo

El atributo Name del elemento Protocol tiene que establecerse en Proprietary. El atributo de controlador debe contener el nombre completo del ensamblado de controlador de protocolo que usa Azure AD B2C para CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Nota:

Esta característica está en versión preliminar pública

En el ejemplo siguiente se muestra un perfil técnico autoafirmado para el registro de un correo electrónico:

<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" />

Operaciones de perfil técnico CAPTCHA

Las operaciones de perfil técnico CAPTCHA tienen dos operaciones:

  • La operación Get challenge genera la cadena de código CAPTCHA y, a continuación, la muestra en la interfaz de usuario mediante un control de visualización CAPTCHA. La pantalla incluye un cuadro de texto de entrada. Esta operación dirige al usuario a que escriba los caracteres que ve o escucha en el cuadro de texto de entrada. El usuario puede cambiar entre los tipos de desafío de audio y visual según sea necesario.

  • Compruebe que la operación de código comprueba los caracteres introducidos por el usuario.

Obtener desafío

La primera operación genera la cadena de código CAPTCHA y, a continuación, la muestra en la interfaz de usuario.

Notificaciones de entrada

El elemento InputClaims contiene una lista de notificaciones que se van a enviar al servicio CAPTCHA de Azure AD B2C.

ClaimReferenceId Obligatorio Descripción
challengeType No Tipo de desafío CAPTCHA, Audio o Visual (valor predeterminado).
azureregion Región de servicio que atiende la solicitud de desafío CAPTCHA.

Notificaciones de visualización

El elemento DisplayClaims contiene una lista de notificaciones que se van a presentar en la pantalla para que el usuario lo vea. Por ejemplo, al usuario se le presenta el código de desafío CAPTCHA que se va a leer.

ClaimReferenceId Obligatorio Descripción
challengeString Código de desafío CAPTCHA.

Notificaciones de salida

El elemento OutputClaims contiene una lista de notificaciones devueltas por el perfil técnico CAPTCHA.

ClaimReferenceId Obligatorio Descripción
challengeId Identificador único para el código de desafío CAPTCHA.
challengeString Código de desafío CAPTCHA.
azureregion Región de servicio que atiende la solicitud de desafío CAPTCHA.

Metadatos

Atributo Obligatorio Descripción
Operación El valor debe ser GetChallenge.
Marca El valor debe ser HIP.

Ejemplo: Generación de código CAPTCHA

En el ejemplo siguiente se muestra un perfil técnico CAPTCHA que se usa para generar un 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>

Comprobación del desafío

La segunda operación comprueba el desafío CAPTCHA.

Notificaciones de entrada

El elemento InputClaims contiene una lista de notificaciones que se van a enviar al servicio CAPTCHA de Azure AD B2C.

ClaimReferenceId Obligatorio Descripción
challengeType No Tipo de desafío CAPTCHA, Audio o Visual (valor predeterminado).
challengeId Identificador único de CAPTCHA usado para la comprobación de sesión. Rellenado desde la llamada a GetChallenge .
captchaEntered Código de desafío que el usuario introduce en el cuadro de texto desafío de la interfaz de usuario.
azureregion Región de servicio que atiende la solicitud de desafío CAPTCHA. Rellenado desde la llamada a GetChallenge .

Notificaciones de visualización

El elemento DisplayClaims contiene una lista de notificaciones que se van a presentar en la pantalla para recopilar una entrada del usuario.

ClaimReferenceId Obligatorio Descripción
captchaEntered Código de desafío CAPTCHA escrito por el usuario.

Notificaciones de salida

El elemento OutputClaims contiene una lista de notificaciones devueltas por el perfil técnico de captcha.

ClaimReferenceId Obligatorio Descripción
challengeId Identificador único de CAPTCHA usado para la comprobación de sesión.
isCaptchaSolved Marca que indica si el desafío CAPTCHA se ha resuelto correctamente.
reason Se usa para comunicar al usuario si el intento de resolver el desafío es correcto o no.

Metadatos

Atributo Obligatorio Descripción
Operación El valor debe ser VerifyChallenge.
Marca El valor debe ser HIP.

Ejemplo: Comprobación del código CAPTCHA

En el ejemplo siguiente se muestra un perfil técnico CAPTCHA que se usa para comprobar un 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>

Pasos siguientes