Inicio de sesión de usuario
- Hosted Lock: Use una instancia del widget Lock alojada en la infraestructura de Auth0.
- Embedded Lock: Incruste el widget Lock en una página web de su aplicación. Tiene algunas opciones de personalización para el propio widget Lock y control total sobre el resto del HTML de la página.
- Custom UI: Desarrolle una página web completamente personalizada para la pantalla de inicio de sesión. El formulario HTML personalizado enviará los datos a su servidor, que a su vez autenticará al usuario mediante la Authentication API. Para obtener más información sobre cuándo usar una Custom UI, consulte Personalice las páginas de Classic Login con Lock o SDK.
Automatizar Home Realm Discovery (HRD)
-
Identificar el IdP mediante programación: Cuando inicias una transacción de autenticación con Auth0, puedes enviar opcionalmente un parámetro
connection. Este valor se asigna directamente a cualquier conexión definida en tu Dashboard. Al usar la versión Hosted de Lock mediante una llamada al endpoint/authorize, puedes incluir un parámetroconnectionen la cadena de consulta que contenga el nombre de la conexión. Como alternativa, si estás usando Lock integrado, esto es tan sencillo como escribirauth0.show({connections: ['{yourConnection}']});.- Hay varias formas prácticas de obtener el valor de
connection. Una de ellas es usar URL personalizadas: por ejemplo, los empleados de la empresa usaránhttps://internal.yoursite.com, mientras que los contratistas externos usaránhttps://external.yoursite.com.
- Hay varias formas prácticas de obtener el valor de
-
Usar dominios de correo electrónico: Lock puede usar dominios de correo electrónico como una forma de encaminar solicitudes de autenticación. Las conexiones empresariales en Auth0 se pueden asignar a
domains. Si una conexión tiene esta configuración, el cuadro de texto de la contraseña se desactiva automáticamente al escribir un correo electrónico con un dominio asignado. Ten en cuenta que puedes asociar varios dominios a una sola conexión.
Gestión de sesiones
- Sesión de la aplicación: La primera es la sesión dentro de la aplicación. Aunque su aplicación use Auth0 para autenticar usuarios, igualmente tendrá que llevar un registro de que el usuario ha iniciado sesión en su aplicación. En una aplicación web normal, esto se logra almacenando información en una cookie.
- Sesión de Auth0: A continuación, Auth0 también mantendrá una sesión y almacenará la información del usuario en una cookie. La próxima vez que se redirija al usuario a la pantalla de Auth0 Lock, se recordará su información.
- Sesión del Proveedor de identidad: La última capa es el Proveedor de identidad, por ejemplo, Facebook o Google. Cuando permite que los usuarios inicien sesión con cualquiera de estos proveedores y ya han iniciado sesión en el proveedor, no se les pedirá que vuelvan a hacerlo. Puede que simplemente se les pida conceder permisos para compartir su información con Auth0 y, a su vez, con su aplicación.
¿Cómo controlo la duración de la sesión local de la aplicación del usuario? ¿Puedo hacerlo desde Auth0?
La aplicación web tiene control total sobre la sesión local del usuario en la aplicación. La forma de hacerlo normalmente depende de la pila web que se esté usando (por ejemplo, ASP.NET). En cualquier caso, todos los enfoques usan en última instancia una o más cookies para controlar la sesión. El desarrollador puede optar por usar la expiración del JWT ID Token devuelto por Auth0 para controlar la duración de su sesión o ignorarla por completo. Algunos desarrolladores almacenan el propio ID Token en el estado de la sesión y finalizan la sesión del usuario cuando este expira.La razón por la que usaría la expiración del token para determinar la expiración de la sesión local es que le proporciona un control centralizado sobre la duración de la sesión de un usuario desde el Auth0 Dashboard.
- Iniciar el flujo de autenticación de OIDC: El navegador del usuario enviará una solicitud a Auth0 para iniciar el flujo de OIDC.
- Establecer la cookie de SSO: Auth0 establecerá una cookie para almacenar la información del usuario.
- Intercambio de código y devolución del ID Token: Auth0 hará una solicitud de vuelta al servidor web y devolverá el code. El servidor web intercambiará el code por un ID Token.
- Establecer la cookie de autenticación y enviar la respuesta: El servidor web enviará una respuesta de vuelta al navegador y establecerá la cookie de autenticación de la aplicación para almacenar la información de la sesión del usuario.
- La cookie de autenticación se envía con cada solicitud posterior: La cookie de autenticación de la aplicación se enviará en cada solicitud posterior como prueba de que el usuario está autenticado.
¿Cómo afecta la sesión de SSO de Auth0 a la sesión de la aplicación?
Auth0 administra su propia sesión de inicio de sesión único. Las aplicaciones pueden optar por respetar o ignorar esa sesión de SSO a la hora de mantener su propia sesión local. El widget Lock incluso tiene una función especial que puede detectar si existe una sesión de SSO de Auth0 y preguntar al usuario si desea volver a iniciar sesión como ese mismo usuario.
Cierre de sesión del usuario
- Sesión de la aplicación: Debe cerrar la sesión del usuario en su aplicación web borrando su sesión.
- Sesión de Auth0: Debe cerrar la sesión del usuario en Auth0. Para ello, redirija al usuario a
https://{yourDomain}/v2/logout. Redirigir al usuario a esta URL borra todas las que Auth0 haya establecido para el usuario. - Sesión del Proveedor de identidad: Aunque no es una práctica habitual, puede forzar al usuario a cerrar sesión en el Proveedor de identidad utilizado, por ejemplo, Facebook o Google. Para ello, agregue un parámetro de cadena de consulta
federateda la URL de cierre de sesión:https://{yourDomain}/v2/logout?federated.
returnTo con la URL de destino como valor: https://{yourDomain}/v2/logout?returnTo=http://www.example.com. Tenga en cuenta que deberá agregar la URL de returnTo a Allowed Logout URLs. Para obtener más información sobre cómo implementarlo, consulte: Logout.
El flujo de cierre de sesión (sin incluir el cierre de sesión federado) es el siguiente:

- Iniciar el flujo de cierre de sesión: El flujo de cierre de sesión se iniciará desde el navegador, por ejemplo, cuando el usuario haga clic en un enlace de Logout. Se realizará una solicitud al servidor web.
- Borrar la sesión local del usuario: Se borrará la sesión de la aplicación o la cookie del usuario.
- Redirigir el navegador al Logout de Auth0: El navegador del usuario será redirigido a la URL de cierre de sesión de Auth0.
- Borrar la cookie de SSO: Auth0 borrará la cookie de SSO del usuario.
- Redirigir a la URL posterior al cierre de sesión: Auth0 devolverá una respuesta de redirección y redirigirá el navegador del usuario al parámetro de cadena de consulta
returnTo.
Control de acceso
- Configurando y usando la Auth0 Authorization Extension.
- Usando grupos de Active Directory. Estos pueden usarse en combinación con Authorization Extension mediante la asignación de grupos de Active Directory a los Groups que defina con Authorization Extension.
- Agregando metadatos al perfil del usuario mediante Rules.
- Llamando a servicios externos desde una Rule.
Authorization extension
En este momento, Authorization Extension está diseñada principalmente para aplicar una autorización de grano grueso, por ejemplo, para controlar el acceso a una aplicación en función de la pertenencia de un usuario a un grupo. No está diseñada necesariamente para controlar el acceso de grano fino (como determinar si un usuario puede realizar una acción específica dentro de la aplicación), aunque en este caso la utilizamos de esa manera.
Admin, lo que les permitirá aprobar registros de horas. Authorization Extension permite asignar grupos a pertenencias de grupo existentes.
A todos los administradores de registros de horas se les asignará el grupo Timesheet Administrators en Active Directory, que se asignará automáticamente al grupo Admin dentro de la aplicación Timesheet.
Cuando instala Authorization Extension, esta crea una Rule en segundo plano que hace lo siguiente:
- Determina la pertenencia del usuario a grupos.
- Almacena la información de pertenencia del usuario a grupos como parte de
app_metadata. - Agrega la pertenencia del usuario a grupos al token emitido.
- Verifica que al usuario se le haya concedido acceso a la aplicación actual.

Timesheet Admins al grupo Admin que acabas de crear.


Timesheet Admins en Active Directory, y esos usuarios se asignarán automáticamente al grupo Admin dentro de nuestra aplicación.
Para obtener más información, consulta la documentación de Authorization Extension.
Aplique permisos en su aplicación
authorization con toda la configuración relacionada con la autorización para un usuario determinado. Los grupos de un usuario se agregarán como un subclaim del claim de authorization llamado groups, y todos los grupos a los que pertenece ese usuario se agregarán como un array en este claim. Este es un ejemplo de cómo podría verse la carga útil JSON de un ID Token con los grupos incluidos:
authorization. Después, puedes almacenar estos grupos junto con otra información del usuario en la sesión del usuario y, posteriormente, consultarlos para determinar si un usuario tiene permisos para realizar una determinada acción en función de su pertenencia a grupos.
Consulta la implementación en ASP.NET Core.