Descubra cómo funciona el flujo implícito con Form Post y por qué debería usarlo en aplicaciones web tradicionales que solo necesitan un ID Token para autenticar usuarios.
¡No deje que el término “implícito” lo confunda! Aunque OAuth ahora desaconseja el uso de la concesión implícita para obtener tokens de acceso en las SPA, el escenario al que se aplica el flujo implícito con Form Post es completamente distinto y no se ve afectado por los problemas de seguridad que llevaron a desaconsejar su uso en las SPA. En concreto, el flujo implícito con Form Post se aplica a las aplicaciones web tradicionales, no a las SPA. Se obtienen ID tokens en lugar de tokens de acceso, que tienen una finalidad completamente distinta. El flujo usa POST en lugar de colocar tokens en fragmentos de URL (como ocurre con las SPA), lo que puede exponer partes del token a ataques a través del historial del navegador, encabezados de redirección, etc.
Puede usar Connect (OIDC) con distintos flujos para implementar el inicio de sesión web en una aplicación web tradicional. En un flujo habitual, se obtiene un mediante el flujo de código de autorización ejecutado por el backend de la aplicación. Este método es eficaz y sólido; sin embargo, requiere que la aplicación web obtenga y administre un secreto. Puede evitar esa carga si lo único que desea es implementar el inicio de sesión y no necesita obtener para invocar API.El flujo implícito con Form Post usa OIDC para implementar el inicio de sesión web de forma muy similar a como funcionan y WS-Federation. La aplicación web solicita y obtiene tokens a través del canal frontal, sin necesidad de secretos ni de llamadas adicionales al backend. Con este método, no necesita obtener, mantener, usar ni proteger un secreto en su aplicación.
Debes usar este flujo solo para casos de inicio de sesión; si necesitas solicitar Tokens de acceso mientras inicias sesión al usuario para poder llamar a una API, usa el Flujo de código de autorización con PKCE o el Flujo híbrido.
El usuario hace clic en Iniciar sesión en la aplicación.
El SDK de Auth0 redirige al usuario al Servidor de autorización de Auth0 (endpoint /authorize) y envía un parámetro response_type con el valor id_token, que indica el tipo de credencial solicitada. También envía un parámetro response_mode con el valor form_post para garantizar la seguridad.
Tu Servidor de autorización de Auth0 redirige al usuario a la pantalla de inicio de sesión y autorización.
El usuario se autentica mediante una de las opciones de inicio de sesión configuradas y puede ver una página de consentimiento donde se enumeran los permisos que Auth0 concederá a la aplicación.
Tu Servidor de autorización de Auth0 redirige al usuario de vuelta a la aplicación con un ID Token.