Compartir a través de


Definición de un perfil técnico de SSPR de Microsoft Entra ID en una directiva personalizada de Azure AD 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.

Azure Active Directory B2C (Azure AD B2C) proporciona compatibilidad para comprobar una dirección de correo electrónico para el autoservicio de restablecimiento de contraseña (SSPR). Use el perfil técnico de SSPR de Microsoft Entra ID para generar y enviar un código a una dirección de correo electrónico y, a continuación, verificar el código. El perfil técnico de SSPR de Microsoft Entra ID también puede devolver un mensaje de error. El perfil técnico de validación valida los datos que proporciona el usuario antes de que continúe el recorrido del usuario. Con el perfil técnico de validación, se muestra un mensaje de error en una página autoafirmada.

Este perfil técnico:

  • No proporciona una interfaz para interactuar con el usuario. En su lugar, se llama a la interfaz de usuario desde un perfil técnico autoafirmado o desde un control de pantalla como perfil técnico de validación.
  • Usa el servicio de SSPR de Microsoft Entra para generar y enviar un código a una dirección de correo electrónico y, a continuación, verifica el código.
  • Valida una dirección de correo electrónico mediante un código de verificación.

Protocolo

El atributo Name del elemento Protocol tiene que establecerse en Proprietary. El atributo handler debe contener el nombre completo del ensamblado del controlador de protocolo que usa Azure AD B2C:

Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

En el ejemplo siguiente se muestra un perfil técnico de SSPR de Microsoft Entra ID:

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Enviar correo electrónico

El primer modo de este perfil técnico es generar un código y enviarlo. Pueden configurarse las opciones siguientes para este modo.

Notificaciones de entrada

El elemento InputClaims contiene una lista de notificaciones para enviar a SSPR de Microsoft Entra. También puede asignar el nombre de la notificación al nombre definido en el perfil técnico de SSPR.

ClaimReferenceId Obligatorio Descripción
emailAddress Identificador del usuario que posee la dirección de correo electrónico. La propiedad PartnerClaimType de la notificación de entrada se debe establecer en emailAddress.

El elemento InputClaimsTransformations puede contener una colección de elementos InputClaimsTransformation que se usan para modificar las notificaciones de entrada o generar otras nuevas antes del envío al servicio SSPR de Microsoft Entra.

Notificaciones de salida

El proveedor de protocolo de SSPR de Microsoft Entra no devuelve ningún elemento OutputClaims, por lo que no es necesario especificar notificaciones de salida. Sin embargo, puede incluir notificaciones que no devuelve el proveedor de protocolo de SSPR de Microsoft Entra, siempre que establezca el atributo DefaultValue.

El elemento OutputClaimsTransformations puede contener una colección de elementos OutputClaimsTransformation que se usan para modificar las notificaciones de salida o para generar nuevas.

Metadatos

Atributo Obligatorio Descripción
Operación Debe ser SendCode.

Elementos de interfaz de usuario

Los metadatos siguientes se pueden usar para configurar los mensajes de error que se muestran cuando se produce un error en envío de mensajes de texto. Los metadatos se deben configurar en el perfil técnico autoafirmado. Los mensajes de error se pueden localizar.

Atributo Obligatorio Descripción
UserMessageIfInternalError No Mensaje de error del usuario si el servidor ha detectado un error interno.
UserMessageIfThrottled No Mensaje de error del usuario si se ha limitado una solicitud.

Ejemplo: envío de un correo electrónico

En el ejemplo siguiente se muestra un perfil técnico de SSPR de Microsoft Entra ID que se usa para enviar un código mediante correo electrónico.

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">SendCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>

Compruebe el código.

El segundo modo de este perfil técnico es verificar un código. Pueden configurarse las opciones siguientes para este modo.

Notificaciones de entrada

El elemento InputClaims contiene una lista de notificaciones para enviar a SSPR de Microsoft Entra. También puede asignar el nombre de la notificación al nombre definido en el perfil técnico de SSPR.

ClaimReferenceId Obligatorio Descripción
emailAddress La misma dirección de correo electrónico que se usó anteriormente para enviar un código. También se usa para buscar una sesión de comprobación de correo electrónico. La propiedad PartnerClaimType de la notificación de entrada se debe establecer en emailAddress.
verificationCode Código de verificación que proporciona el usuario y que se va a verificar. La propiedad PartnerClaimType de la notificación de entrada se debe establecer en verificationCode.

El elemento InputClaimsTransformations puede contener una colección de elementos InputClaimsTransformation que se usan para modificar las notificaciones de entrada o generar otras nuevas antes de llamar al servicio SSPR de Microsoft Entra.

Notificaciones de salida

El proveedor de protocolo de SSPR de Microsoft Entra no devuelve ningún elemento OutputClaims, por lo que no es necesario especificar notificaciones de salida. Sin embargo, puede incluir notificaciones que no devuelve el proveedor de protocolo de SSPR de Microsoft Entra, siempre que establezca el atributo DefaultValue.

El elemento OutputClaimsTransformations puede contener una colección de elementos OutputClaimsTransformation que se usan para modificar las notificaciones de salida o para generar nuevas.

Metadatos

Atributo Obligatorio Descripción
Operación Debe ser VerifyCode

Elementos de interfaz de usuario

Los metadatos siguientes se pueden usar para configurar los mensajes de error que se muestran cuando se produce un error en la comprobación de código. Los metadatos se deben configurar en el perfil técnico autoafirmado. Los mensajes de error se pueden localizar.

Atributo Obligatorio Descripción
UserMessageIfChallengeExpired Mensaje que se mostrará al usuario si la sesión de verificación de código ha expirado. El código ha expirado o nunca se ha generado para un identificador determinado.
UserMessageIfInternalError Mensaje de error del usuario si el servidor ha detectado un error interno.
UserMessageIfThrottled Mensaje de error del usuario si se ha limitado una solicitud.
UserMessageIfVerificationFailedNoRetry Mensaje que se mostrará al usuario si ha proporcionado un código no válido y no tiene permitido proporcionar el código correcto.
UserMessageIfVerificationFailedRetryAllowed Mensaje que se mostrará al usuario si ha proporcionado un código no válido y tiene permitido proporcionar el código correcto.

Ejemplo: verificación de un código

En el ejemplo siguiente se muestra un perfil técnico de SSPR de Microsoft Entra ID que se usa para verificar el código.

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>