Saltar al contenido principal

Antes de empezar

Auth0 proporciona varios endpoints de API para ayudarte a administrar los autenticadores que utilizas con una aplicación para la (MFA). Puedes usar estos endpoints para crear una interfaz de usuario completa que permita a los usuarios administrar sus factores de autenticación.

Obtener tokens de acceso para la API de MFA

Para llamar a la API de MFA y administrar las inscripciones, primero debe obtener un para la API de MFA. Para usar la API de MFA como parte de un flujo de autenticación, puede seguir los pasos detallados en Autenticarse con Resource Owner Password Grant y MFA. Si está creando una interfaz de usuario para administrar factores de autenticación, deberá obtener un token que pueda usar con la API de MFA en cualquier momento, no solo durante la autenticación. Un token de acceso de MFA, o un token de acceso con la https://{yourDomain}/mfa/, autentica simultáneamente y desencadena una solicitud de desafío de MFA. La habilitación de factores en su inquilino y la inscripción de sus usuarios determinan si se inicia el desafío de MFA:
  • Si su inquilino permite la inscripción en varios factores y sus usuarios se inscriben en un factor válido (excepto correo electrónico), como una contraseña de un solo uso (OTP), el usuario recibe el desafío de MFA al iniciar sesión.
  • Si sus usuarios no están inscritos en ningún factor de autenticación, o solo están inscritos en el factor email, se genera el token de MFA y no se emite ningún desafío para el usuario.
El tiempo de expiración predeterminado de los tokens de acceso con la audiencia https://{yourDomain}/mfa/* es de 10 minutos. Este valor no se puede configurar.

Universal Login

Si utiliza Universal Login, redirija al endpoint Authorize y especifique la audiencia https://{yourDomain}/mfa/.
Cuando se especifica https://{yourDomain}/mfa/ como audiencia, MFA se aplica de forma obligatoria. Si los usuarios finales habilitan Remember this browser mientras .../mfa/ se especifica como audiencia, la configuración no tendrá efecto.Auth0 recomienda que los administradores del inquilino creen una Action que establezca allowRememberBrowser en false. Esto ocultará Remember this browser en la experiencia del usuario final.

Grant de contraseña del propietario del recurso

Si está utilizando el Password Grant (ROPG), tiene 3 opciones:
  • Solicite la audiencia https://{yourDomain}/mfa/ al iniciar sesión y use un Token de actualización para renovarlo más adelante.
  • Si necesita listar y eliminar autenticadores, pida al usuario que se autentique de nuevo con /oauth/token, especificando la audiencia https://{yourDomain}/mfa/. Los usuarios deberán completar MFA antes de poder listar o eliminar factores de autenticación.
  • Si solo necesita listar autenticadores, pida al usuario que se autentique de nuevo usando /oauth/token con username y contraseña. El endpoint devolverá un error mfa_required y un mfa_token que puede usar para listar autenticadores. Los usuarios deberán proporcionar su contraseña para ver sus autenticadores.

Alcances

Cuando solicitas un token para la audiencia de MFA, puedes solicitar los siguientes alcances:
AlcanceDescripción
enrollPara inscribir un nuevo autenticador.
read:authenticatorsPara listar los autenticadores existentes.
remove:authenticatorsPara eliminar un autenticador.

Listar autenticadores

Para obtener una lista de los autenticadores de un usuario, puedes llamar al endpoint de autenticadores de MFA: Deberías recibir en la respuesta información sobre el tipo o los tipos de autenticador:
[
  {
    "authenticator_type": "recovery-code",
    "id": "recovery-code|dev_IsBj5j3H12VAdOIj",
    "active": true
  },
  {
    "authenticator_type": "otp",
    "id": "totp|dev_nELLU4PFUiTW6iWs",
    "active": true,
  },
  {
    "authenticator_type": "oob",
    "oob_channel": "sms",
    "id": "sms|dev_sEe99pcpN0xp0yOO",
    "name": "+1123XXXXX",
    "active": true
  }
]
Para crear una interfaz de usuario para que los usuarios finales administren sus factores, debe ignorar los autenticadores cuyo valor de active sea false. Esos autenticadores no han sido confirmados por los usuarios, por lo que no pueden usarse en desafíos de MFA. La API de MFA mostrará las siguientes inscripciones según el tipo de autenticador:
AutenticadorAcciones
Push y OTPSi push está habilitado, Auth0 también crea una inscripción de OTP. Verá ambas al listar las inscripciones.
SMS y vozSi tanto SMS como voz están habilitados, cuando un usuario se inscribe con SMS o voz, Auth0 crea automáticamente dos autenticadores para el número de teléfono: uno para SMS y otro para voz.
Correo electrónicoTodos los correos electrónicos verificados aparecerán en la lista como autenticadores.

Inscribir autenticadores

Consulte los siguientes enlaces para obtener más información sobre cómo inscribir autenticadores para distintos factores: También puede usar el flujo de Universal Login para inscribir a los usuarios en cualquier momento.

Eliminar autenticadores

Para eliminar un autenticador asociado, envía una solicitud DELETE al endpoint de autenticadores de MFA y reemplaza AUTHENTICATOR_ID por el ID del autenticador correspondiente. Puedes obtener el ID al listar los autenticadores. Si se usó un mfa_token para listar autenticadores, los usuarios deberán completar MFA para obtener un token de acceso con una audiencia de https://{yourDomain}/mfa/ para poder eliminar un autenticador. Si se eliminó el autenticador, se devuelve una respuesta 204. Cuando eliminas un autenticador, se realizan las siguientes acciones según el tipo de autenticador:
AutenticadorAcción
Push y OTPCuando un usuario inscribe un autenticador push, Auth0 también inscribe OTP. Si eliminas cualquiera de los dos, el otro también se eliminará.
SMS y VozCuando un usuario se inscribe en SMS o Voz, Auth0 crea dos autenticadores: SMS y voz. Si eliminas cualquiera de los dos, el otro también se eliminará.
Correo electrónicoTodos los correos electrónicos verificados aparecen como autenticadores, pero no puedes eliminarlos. Solo puedes eliminar los autenticadores de correo electrónico inscritos explícitamente.

Regenerar códigos de recuperación

Para eliminar un código de recuperación y generar uno nuevo, obtén un token de acceso para la Management API de Auth0 y usa el endpoint de regeneración del código de recuperación. Recibirás un nuevo código de recuperación que el usuario final deberá guardar; por ejemplo:
{  
   "recovery_code": "FA45S1Z87MYARX9RG6EVMAPE"
}

Más información