Compartir por


Definición de un perfil técnico de autenticación multifactor de Microsoft Entra ID en una directiva personalizada de Azure AD B2C

Azure Active Directory B2C (Azure AD B2C) ofrece soporte para verificar un número de teléfono mediante un código de verificación o para verificar un código de contraseña de un solo uso y duración definida (TOTP).

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.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID:

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Modo de verificación de teléfono

En el modo de verificación de teléfono, el perfil técnico genera y envía un código a un número de teléfono y, a continuación, verifica el código. El perfil técnico de autenticación multifactor 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. El 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 autenticación multifactor de Microsoft Entra para generar y enviar un código a un número de teléfono y, a continuación, comprueba el código.
  • Valida un número de teléfono a través de mensajes de texto.

El perfil técnico proporciona métodos para enviar el código de verificación a través de un mensaje de texto SMS y comprobar el código. En la captura de pantalla siguiente se muestra el flujo del verificador de teléfono.

Screenshot showing TOTP flow

Envío de SMS

Para verificar un teléfono, el primer paso genera un código y lo envía al número de teléfono. Pueden configurarse las opciones siguientes para este paso.

Notificaciones de entrada

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

ClaimReferenceId Obligatorio Descripción
userPrincipalName Identificador del usuario que posee el número de teléfono.
phoneNumber Número de teléfono al que se va a enviar un código de SMS.
companyName No Nombre de la empresa en el SMS. Si no se proporciona, se usa el nombre de la aplicación.
locale No Configuración regional del SMS. Si no se proporciona, se usa la configuración regional del explorador del usuario.

Notificaciones de salida

El proveedor del protocolo de autenticación multifactor de Microsoft Entra no devuelve ninguna notificación de salida, por lo que no es necesario especificarlas.

Metadatos

El elemento Metadata contiene el atributo siguiente.

Atributo Obligatorio Descripción
Operation Debe ser OneWaySMS.
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
UserMessageIfCouldntSendSms No Mensaje de error del usuario si el número de teléfono proporcionado no acepta SMS.
UserMessageIfInvalidFormat No Mensaje de error del usuario si el número de teléfono proporcionado no es válido.
UserMessageIfServerError 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 SMS

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID que se usa para enviar un código mediante mensaje de texto.

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

Compruebe el código.

El paso de verificación de código consiste en verificar un código enviado al usuario. Pueden configurarse las opciones siguientes para este paso.

Notificaciones de entrada

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

ClaimReferenceId Obligatorio Descripción
phoneNumber El mismo número de teléfono que se usó anteriormente para enviar un código. También se usa para buscar una sesión de verificación del teléfono.
verificationCode Código de verificación que proporciona el usuario y que se va a verificar

Notificaciones de salida

El proveedor del protocolo de autenticación multifactor de Microsoft Entra no devuelve ninguna notificación de salida, por lo que no es necesario especificarlas.

Metadatos

El elemento Metadata contiene el atributo siguiente.

Atributo Obligatorio Descripción
Operation Debe ser Verify.
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
UserMessageIfMaxAllowedCodeRetryReached No Mensaje de error del usuario si este ha intentado un código de verificación demasiadas veces.
UserMessageIfServerError No Mensaje de error del usuario si el servidor ha detectado un error interno.
UserMessageIfThrottled No Mensaje de error del usuario si la solicitud está limitada.
UserMessageIfWrongCodeEntered No Mensaje de error del usuario si el código especificado para la verificación es incorrecto.

Ejemplo: verificación de un código

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID usado para verificar el código.

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

Modo TOTP

En este modo, el usuario debe instalar una aplicación autenticadora que admita la comprobación de contraseña de un solo uso y duración definida (TOTP), como Microsoft Authenticator, en un dispositivo de su propiedad.

Durante el primer registro o inicio de sesión, el usuario digitaliza un código QR, abre un vínculo profundo o escribe manualmente el código con la aplicación autenticadora. Para verificar el código TOTP, use el perfil de verificación Begin verify OTP (Comenzar a comprobar OTP) seguido de Verify TOTP validation technical profiles (Comprobar perfiles técnicos de validación de TOTP).

Para los inicios de sesión posteriores, use el método Get available devices (Obtener dispositivos disponibles) para comprobar si el usuario ya ha inscrito su dispositivo. Si el número de dispositivos disponibles es mayor que cero, esto indica que el usuario se ha inscrito antes. En este caso, el usuario debe escribir el código TOTP que aparece en la aplicación de autenticador.

El 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 con los controles de visualización TOTP.
  • Usa el servicio de autenticación multifactor de Microsoft Entra para validar el código TOTP.
  • Comprueba si un usuario ya ha inscrito su dispositivo.

En la captura de pantalla siguiente se muestra un flujo de inscripción y verificación de TOTP. Comienza comprobando el número de dispositivos disponibles. Si el número de dispositivos disponibles es cero, el usuario pasa por el paso de orquestación de inscripción. De lo contrario, el usuario pasa por el paso de orquestación de verificación.

Screenshot showing TOTP flow.

Obtención de dispositivos disponibles

El modo de obtención de dispositivos disponibles comprueba el número de dispositivos disponibles para el usuario. Si el número de dispositivos disponibles es cero, esto indica que el usuario aún no se ha inscrito.

Notificaciones de entrada

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

ClaimReferenceId Obligatorio Descripción
userPrincipalName Nombre principal de usuario.

Notificaciones de salida

El elemento de notificaciones de salida contiene una lista de notificaciones para devolver de la autenticación multifactor de Microsoft Entra. También puede asignar el nombre de la notificación al nombre definido en el perfil técnico de MFA.

ClaimReferenceId Obligatorio Descripción
numberOfAvailableDevices Número de dispositivos disponibles para el usuario.

Metadatos

El elemento Metadata contiene el atributo siguiente.

Atributo Obligatorio Descripción
Operation Debe ser GetAvailableDevices.

Ejemplo: obtención de dispositivos disponibles

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID usado para obtener el número de dispositivos disponibles.

<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
  <DisplayName>Get Available Devices</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GetAvailableDevices</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
  </OutputClaims>
</TechnicalProfile>

Inicio de la verificación TOTP

El inicio de la verificación TOTP inicia el proceso de comprobación. Este perfil técnico de validación se llama desde el perfil técnico autoafirmado que presenta y verifica los códigos TOTP. Este perfil técnico de validación debe ir seguido de una llamada a los perfiles técnicos de validación Verify TOTP (Verificar TOTP).

Notificaciones de entrada

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

ClaimReferenceId Obligatorio Descripción
userPrincipalName Nombre principal de usuario.
objectId Id. del objeto de usuario.
secretKey Clave secreta del usuario. Esta clave se almacena en el perfil del usuario en el directorio de Azure AD B2C y se comparte con la aplicación autenticadora. La aplicación de autenticador usa el secreto para generar el código TOTP. Este perfil técnico usa el secreto para verificar el código TOTP.

Notificaciones de salida

El proveedor del protocolo de autenticación multifactor de Microsoft Entra no devuelve ninguna notificación de salida, por lo que no es necesario especificarlas.

Metadatos

El elemento Metadata contiene el atributo siguiente.

Atributo Obligatorio Descripción
Operation Debe ser BeginVerifyOTP.

Ejemplo: inicio de la verificación TOTP

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID usado para iniciar el proceso de comprobación de TOTP.

<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
  <DisplayName>Begin verify TOTP"</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">BeginVerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="secretKey" />
    <InputClaim ClaimTypeReferenceId="objectId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
</TechnicalProfile>

Verificación de TOTP

El método de verificación de TOTP comprueba un código TOTP. Este perfil técnico de validación se llama desde el perfil técnico autoafirmado que presenta y verifica los códigos TOTP. Este perfil técnico de validación debe ir precedido de una llamada a los perfiles técnicos de validación Begin verify TOTP (Iniciar verificación de TOTP).

Notificaciones de entrada

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

ClaimReferenceId Obligatorio Descripción
otpCode Código TOTP proporcionado por el usuario.

Notificaciones de salida

El proveedor del protocolo de autenticación multifactor de Microsoft Entra no devuelve ninguna notificación de salida, por lo que no es necesario especificarlas.

Metadatos

El elemento Metadata contiene el atributo siguiente.

Atributo Obligatorio Descripción
Operation Debe ser VerifyOTP.

Ejemplo: verificación de TOTP

En el siguiente ejemplo se muestra un perfil técnico de autenticación multifactor de Microsoft Entra ID usado para verificar el código TOTP.

<TechnicalProfile Id="AzureMfa-VerifyOTP">
  <DisplayName>Verify OTP</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otpCode" />
  </InputClaims>
</TechnicalProfile>

Pasos siguientes