LDAP y Active Directory¶
Drovio Server puede autenticar a los usuarios contra un directorio LDAP o un Active Directory de Microsoft. Las cuentas se crean automáticamente en el primer inicio de sesión, así que no hay nada que aprovisionar a mano. El detalle de los campos se describe en la referencia de configuración.
LDAP puede convivir con las cuentas locales y con el SSO. Solo afecta a la aplicación Drovio, ya que el cliente web no requiere ninguna cuenta.
Desarrollo de un inicio de sesión¶
Cada inicio de sesión sigue la secuencia clásica de conexión, búsqueda y conexión:
- Drovio Server se conecta al directorio con la cuenta de servicio.
- Busca al usuario bajo
base, mediantesearch_filter, donde{0}se sustituye por la dirección de correo introducida en el formulario. - Se conecta una segunda vez con el nombre distinguido del usuario y la contraseña facilitada. Es esta segunda conexión la que autentica.
Tres consecuencias que conviene tener presentes al escribir su filtro
- La búsqueda abarca todo el subárbol situado bajo
base. - El filtro debe resolverse en una entrada y solo una. Si encuentra varias, el inicio de sesión se rechaza en lugar de autenticar con una coincidencia arbitraria.
- Los usuarios se conectan con una dirección de correo. El valor se
depura de espacios y se pasa a minúsculas, y debe ser sintácticamente
válido: un simple
sAMAccountNamese rechaza incluso antes de contactar con el directorio.
Solo se lee del directorio el nombre distinguido. No se recupera ningún atributo, y el mecanismo de conexión es simple, de modo que Kerberos y los demás mecanismos SASL no están disponibles.
Configurar la conexión¶
Los ajustes se encuentran bajo Users en el panel de administración, en la sección LDAP / Active Directory.
| Campo del panel | Clave de configuración | Ejemplo |
|---|---|---|
| Status | enabled |
true |
| URL | url |
ldaps://ldap.example.com:636 |
| Service Account DN | service_account_dn |
cn=drovio,ou=services,dc=example,dc=com |
| Service Account Password | service_account_password |
|
| Base | base |
ou=users,dc=example,dc=com |
| Search Filter | search_filter |
ver más abajo |
| CA Certificate | ca_certificate_path |
/etc/drovio-server/ldap-ca.pem |
La cuenta de servicio solo necesita el derecho de buscar en el subárbol situado
bajo base, nada más.
El valor entregado de forma predeterminada es (&(objectClass=*)(mail={0})).
Funciona, pero restringir la clase de objeto abarata la búsqueda y facilita el
cumplimiento de la restricción de unicidad.
Los cambios surten efecto en el siguiente inicio de sesión. No hace falta reiniciar.
No hay botón de prueba
El panel no sabe validar la configuración por sí mismo. Guárdela, pida a un usuario que intente conectarse y lea después el registro del servidor. Cada fallo queda ahí consignado con el paso que falló, que la tabla de Resolución de problemas remite al campo que hay que revisar.
Conectarse en LDAPS¶
Utilice ldaps:// en el puerto 636. El simple ldap:// hace circular las
credenciales en claro, y el servidor lo advierte una vez en el registro.
StartTLS no es compatible. Los dos modos son el texto claro en ldap:// y el
TLS implícito en ldaps://.
ca_certificate_path designa el certificado que se considera de confianza.
Acepta tanto PEM como DER, así como un conjunto PEM que contenga toda una cadena.
Puede indicar ahí una autoridad de certificación o directamente el certificado
del propio directorio, que es lo que permite que funcione un certificado
autofirmado.
El archivo sustituye al almacén del sistema, no lo complementa
Cuando ca_certificate_path está indicado, la conexión LDAP solo confía
en lo que contiene ese archivo. Un certificado de directorio emitido por una
autoridad pública reconocida deja de validarse si su cadena no figura
también ahí. Deje el ajuste vacío para usar el almacén de confianza de Java.
El certificado debe además coincidir con el host indicado en url, y el
ajuste solo se lee para las URL en ldaps://. Indicarlo junto a una URL en
ldap:// no surte ningún efecto.
Creación automática de las cuentas¶
En el primer inicio de sesión correcto, Drovio Server crea la cuenta:
| Campo de la cuenta | Valor |
|---|---|
| Correo | La dirección introducida en el formulario |
| Nombre de usuario | La parte local de esa dirección, de modo que jane.doe@example.com da jane.doe |
No se recoge ningún atributo del directorio, a diferencia de SAML y OIDC, que
disponen de sus propios ajustes email_attribute y username_attribute. Los
usuarios pueden cambiar después su nombre de usuario, y los inicios de sesión
posteriores dejan intacta esa modificación.
Nunca se almacena ninguna contraseña para una cuenta LDAP, ni se envía ningún correo de verificación. Los cambios de contraseña, los restablecimientos y la política de contraseñas siguen dependiendo enteramente de su directorio: el panel de administración no ofrece ninguna edición de credenciales para estas cuentas.
Revise su pool de licencias antes de abrir LDAP a un directorio amplio
La creación de cuentas sigue
users.license_allocation
como cualquier otra cuenta. Si no hay ningún puesto libre, la cuenta se crea
igualmente, simplemente sin licencia. El usuario recibe el aviso en la
aplicación Drovio y el registro del servidor consigna:
Restringir el acceso a un grupo o a una unidad organizativa¶
No existe ningún ajuste dedicado, y no hace falta. Los dos campos existentes bastan:
- Por subárbol. Haga apuntar
basea la rama que contiene los usuarios autorizados, por ejemploOU=Drovio Users,DC=example,DC=com. Todo lo que queda fuera se vuelve invisible para la búsqueda. -
Por pertenencia a un grupo. Añada una cláusula al filtro:
En Active Directory, utilice la regla de coincidencia
memberOf:1.2.840.113556.1.4.1941:=en lugar dememberOfpara incluir los grupos anidados.
La comprobación se realiza en cada inicio de sesión. Retirar a alguien del grupo lo bloquea, por tanto, de inmediato. Tenga presente que el filtro debe seguir correspondiendo a una entrada y solo una.
Combinar con los demás métodos de inicio de sesión¶
| Combinación | Comportamiento |
|---|---|
| LDAP y cuentas locales | Se consulta primero el directorio. Si rechaza las credenciales, el mismo correo y la misma contraseña se prueban después contra la cuenta local |
| LDAP y SAML | Compatibles, recorren rutas distintas |
| LDAP y OIDC | Compatibles, recorren rutas distintas |
Para imponer la autenticación únicamente por el directorio, desactive
users.auth.local.
Revocar un acceso¶
Eliminar o desactivar la cuenta en el directorio bloquea el inicio de sesión
desde el intento siguiente. Lo que no hace es eliminar nada del lado de
Drovio: no existe ninguna tarea de reconciliación. La ficha del usuario y su
puesto de licencia subsisten ambos, si
users.license_allocation
está desactivado o ajustado en modo new_user.
Para liberar el puesto, elimine el usuario desde la pestaña Users del panel
de administración, o active
users.remove_inactive para
que las cuentas sin uso se limpien periódicamente.
Límites de explotación¶
Algunos comportamientos son fijos y merece la pena conocerlos a la hora de dimensionar el despliegue o de abrir el cortafuegos:
| Comportamiento | Valor |
|---|---|
| Conexiones por autenticación | Dos, una para la cuenta de servicio y otra para el usuario. No se mancomunan |
| Tiempo de espera de conexión | 30 segundos |
| Tiempo de espera de lectura | 60 segundos |
| Referencias | Ignoradas |
Que las referencias se ignoren cuenta en un bosque Active Directory
multidominio: los usuarios cuya cuenta reside en un dominio distinto del
indicado en url no se encuentran. Haga apuntar Drovio Server más bien a un
catálogo global, en ldaps:// sobre el puerto 3269, o despliegue un servidor
por dominio. El catálogo global solo expone una parte de los atributos, lo que
basta aquí puesto que solo se utiliza el nombre distinguido.