Validar tokens de ID para MFA
amr (authentication methods reference), que es un array JSON de cadenas que indica el método de autenticación utilizado durante el inicio de sesión. Debe estar presente en la carga útil del token de ID y debe contener el valor mfa.
Sus valores pueden incluir cualquiera de los Authentication Method Reference Values predefinidos. Como puede contener claims distintos de mfa, al validarlo debe comprobar tanto que exista como que su contenido incluya el valor mfa.
Si un usuario intenta acceder a una página restringida y el token muestra que no se ha autenticado con MFA, puede volver a activar la autenticación, que ha configurado para activar MFA mediante una Action. Una vez que el usuario proporciona el segundo factor, se genera un nuevo token de ID que contiene el claim amr y se envía a la aplicación.
- Obtenga el token de ID.
- Verifique la firma del token, que se utiliza para comprobar que el remitente del token es quien dice ser y para asegurarse de que el mensaje no se haya modificado en tránsito.
- Valide los siguientes claims:
| Claim | Descripción |
|---|---|
exp | Expiración del token |
iss | Emisor del token |
aud | Destinatario previsto del token |
amr | Si amr no existe en la carga útil o no contiene el valor mfa, el usuario no inició sesión con MFA. Si amr existe en la carga útil y contiene el valor mfa, entonces el usuario sí inició sesión con MFA. |
Excepciones del claim amr
amr es obligatorio, excepto en los siguientes casos de uso:
- En los flujos de inicio de sesión alojados, el claim
amrsolo se incluye en el token de ID después de que el usuario supere correctamente una verificación de MFA. Si la aplicación usa autenticación silenciosa o Tokens de actualización para los tokens de ID recién emitidos, el claimamrno estará presente porque el usuario ya completó previamente el inicio de sesión con MFA. - Los tokens emitidos por la API de MFA no contienen el claim
amr. El claimamrindica los métodos de autenticación utilizados cuando el usuario recibe el ID Token. En el proceso de autenticación de la API de MFA, la aplicación controla el flujo de autenticación y puede exigir MFA según sea necesario.
Ejemplo: valores con MFA
Ejemplo: valores sin MFA
Escenario: Datos salariales con notificaciones push
Requisitos previos
- Registrar una aplicación web.
- Crear una conexión de base de datos.
- Habilitar MFA para usar las notificaciones push.
Crear una Action
- La variable
CLIENTS_WITH_MFAcontiene los de las aplicaciones a las que quieres aplicar esta Action. Puedes eliminar esto (y la condiciónifque aparece a continuación) si no lo necesitas. - La propiedad
event.transaction.acr_valueses un arreglo de cadenas que contiene las referencias de clase del contexto de autenticación (acr). Es una propiedad opcional que solo existe cuando la aplicación la incluye en la solicitud de autenticación al . En este ejemplo, nuestra aplicación web la incluirá en la solicitud de autenticación, pero solo cuando un usuario que todavía no se haya autenticado con MFA intente acceder a información salarial. Cuando nuestra aplicación web la incluya, establecerá el valorhttp://schemas.openid.net/pape/policies/2007/06/multi-factor, lo que indica que queremos que el Servidor de autorización exija MFA, y el valor de la propiedadapi.multifactorque configuramos en nuestro código pedirá al usuario que complete MFA con cualquiera de los métodos disponibles que se hayan configurado en el inquilino. Para obtener más información sobre el métodoapi.multifactor.enable(), consulta Action Triggers: objeto API de post-login. - La directiva
http://schemas.openid.net/pape/policies/2007/06/multi-factordefine un mecanismo de autenticación en el que el usuario final se autentica ante el proveedor de proporcionando más de un factor de autenticación, o MFA. Para obtener más información, consulta OpenID Provider Authentication Policy Extension 1.0.
Configurar la aplicación
amr con el valor mfa.) Si el usuario ya se ha autenticado con MFA, la aplicación web mostrará la página restringida; de lo contrario, la aplicación web enviará una nueva solicitud de autenticación que incluye el parámetro acr_values con el siguiente valor:
http://schemas.openid.net/pape/policies/2007/06/multi-factorque activará la Action.
La aplicación web de este escenario usa Flujo de Código de Autorización para autenticarse, por lo que la solicitud es la siguiente:
Una vez que el usuario se autentica con MFA, la aplicación web recibe el código de autorización, que debe intercambiarse por el nuevo token de ID, que ahora debería incluir la claim amr con el valor mfa. Para obtener más información sobre cómo intercambiar el código por un token de ID, consulte Agregar inicio de sesión mediante el Flujo de Código de Autorización.
Validar token de ID
jwt.verify), decodifica el token, comprueba si la carga útil contiene amr y, de ser así, muestra los resultados en la consola.