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.
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 |
Sí | Identificador del usuario que posee el número de teléfono. |
phoneNumber |
Sí | 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 |
Sí | 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 |
Sí | 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 |
Sí | 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 |
Sí | 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.
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 |
Sí | 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 |
Sí | Número de dispositivos disponibles para el usuario. |
Metadatos
El elemento Metadata contiene el atributo siguiente.
Atributo | Obligatorio | Descripción |
---|---|---|
Operation |
Sí | 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 |
Sí | Nombre principal de usuario. |
objectId |
Sí | Id. del objeto de usuario. |
secretKey |
Sí | 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 |
Sí | 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 |
Sí | 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 |
Sí | 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>