Autenticación
Elige cómo inician sesión los usuarios y cómo su cuenta y sus grupos llevan a los roles
- Métodos de inicio de sesión
- Cómo elige el método un inicio de sesión
- Activar y desactivar el inicio de sesión único
- Del usuario a los roles
Métodos de inicio de sesión
AnsibleForms admite cuatro métodos de inicio de sesión, y varios pueden estar activos a la vez:
| Método | Cuándo usarlo | Página |
|---|---|---|
| Cuentas locales | El admin integrado, cuentas de servicio, equipos pequeños o como respaldo cuando el directorio no está disponible. | Cuentas locales |
| LDAP | Los usuarios y grupos están en Active Directory, OpenLDAP u otro directorio LDAP. | LDAP |
| Entra ID | Los usuarios inician sesión con su cuenta de Microsoft 365 / Entra ID (inicio de sesión único). | Entra ID |
| OIDC | Inicio de sesión único a través de otro proveedor OpenID Connect, como Keycloak. | OIDC |
Las cuentas locales y LDAP se configuran en Acceso > Usuarios, Grupos y LDAP; Entra ID y OIDC en Acceso > SSO.
Cómo elige el método un inicio de sesión
La página de inicio de sesión tiene un formulario de nombre de usuario y contraseña, más un botón por cada proveedor de inicio de sesión único habilitado:
- El nombre de usuario y la contraseña se comprueban primero contra los usuarios locales. Solo cuando ningún usuario local tiene ese nombre, y LDAP está habilitado, se prueba el directorio. Un usuario local con una contraseña incorrecta se rechaza sin consultar a LDAP.
- Los botones de Entra ID y OpenID aparecen debajo de Entrar cuando hay un proveedor así habilitado. Envían el navegador al proveedor y de vuelta; ninguna contraseña llega a AnsibleForms.
Solo puede haber habilitado a la vez un proveedor Entra ID y un proveedor OIDC: habilitar uno desactiva los demás de su tipo. Un inicio de sesión fallido con usuario y contraseña muestra siempre el mismo mensaje genérico; el motivo está en el registro del servidor y en el registro de auditoría.
Activar y desactivar el inicio de sesión único
Desde la 7.3.0 cada proveedor de Acceso > SSO tiene dos interruptores propios, que se aplican sin reiniciar:
| Interruptor | Efecto |
|---|---|
| Activado | Muestra el botón del proveedor en la página de inicio de sesión y acepta su inicio de sesión. Activarlo desactiva los demás proveedores de su tipo. |
| Saltar la página de inicio de sesión | Los usuarios van directamente a este proveedor, sin la página de inicio de sesión, mientras el proveedor esté habilitado. Activarlo en un proveedor lo desactiva en los demás; aparece en gris en un proveedor desactivado. |
El formulario de usuario y contraseña sigue accesible en /login?local, para el admin local o cuando el proveedor falla, y se muestra después de cerrar sesión y cuando un inicio de sesión único vuelve con un error.
Las variables ENABLE_SSO y SSO_AUTO_LOGIN se eliminan en la 7.3.0. El primer arranque de la 7.3.0 las lee una vez, y registra un aviso en cada arranque mientras sigan definidas, así que quítalas del entorno después de la actualización:
| Variable antes de la 7.3.0 | Qué hace la actualización |
|---|---|
ENABLE_SSO=0 | Desactiva todos los proveedores: siguen configurados, sin botón en la página de inicio de sesión |
SSO_AUTO_LOGIN=1 | Activa Saltar la página de inicio de sesión en el proveedor habilitado, cuando hay exactamente uno habilitado y ENABLE_SSO no es 0 |
Del usuario a los roles
Cada inicio de sesión produce un usuario con un tipo (local, ldap, azuread u oidc), un nombre de usuario y una lista de grupos. Cada grupo recibe el prefijo de su tipo, así que un grupo de Entra ID se guarda y se muestra como azuread/...:
| Método de inicio de sesión | Nombre de usuario | Grupos |
|---|---|---|
| Local | el nombre de usuario local | local/<group>, uno por cada grupo local del usuario |
LDAP, directorio main | el valor del Username Attribute | ldap/<cn>, el CN de cada grupo que devuelve el directorio |
| LDAP, otro directorio | <directory>/<username> | ldap/<directory>/<cn>, consulta Varios directorios |
| Entra ID | el claim upn, o preferred_username cuando el token no tiene upn | azuread/<object id> y azuread/<display name> de cada grupo, leídos de Microsoft Graph |
| OIDC | el claim preferred_username | oidc/<name>, del claim groups del ID token |
Los roles de config.yaml comparan después estos valores: un rol se aplica cuando uno de sus groups es uno de los grupos del usuario, o cuando su users contiene <type>/<username>. Todo usuario recibe además el rol default. Desde la 7.3.0 un rol nombra a un miembro de Entra ID como entraid/<group> o entraid/<upn>, que coincide con el valor azuread/ guardado; azuread/ en un rol sigue funcionando y se elimina en la 8.0. El perfil y las extravars del trabajo siguen mostrando azuread/.
roles:
- name: admin
groups:
- local/admins
- ldap/AF-Admins
- entraid/AF-Admins
- name: operator
groups:
- oidc/af-operators
users:
- ldap/jdoe
La página del perfil de un usuario lista el tipo de inicio de sesión, los grupos y los roles, que es la forma más rápida de comprobar una asignación. La opción de rol allowLogin puede rechazar el inicio de sesión de los usuarios que no coinciden con ningún rol: ponla a false en default y a true en los roles que pueden iniciar sesión.