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 | Sí | 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 | Sí | 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 | Sí | Identificador único para el código de desafío CAPTCHA. |
challengeString | Sí | Código de desafío CAPTCHA. |
azureregion | Sí | Región de servicio que atiende la solicitud de desafío CAPTCHA. |
Metadatos
Atributo | Obligatorio | Descripción |
---|---|---|
Operación | Sí | El valor debe ser GetChallenge. |
Marca | Sí | 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 | Sí | Identificador único de CAPTCHA usado para la comprobación de sesión. Rellenado desde la llamada a GetChallenge . |
captchaEntered | Sí | Código de desafío que el usuario introduce en el cuadro de texto desafío de la interfaz de usuario. |
azureregion | Sí | 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 | Sí | 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 | Sí | Identificador único de CAPTCHA usado para la comprobación de sesión. |
isCaptchaSolved | Sí | Marca que indica si el desafío CAPTCHA se ha resuelto correctamente. |
reason | Sí | 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 | Sí | El valor debe ser VerifyChallenge. |
Marca | Sí | 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>