2 LDAP

Descripción general

Se puede utilizar la autenticación externa LDAP para comprobar los nombres de usuario y las contraseñas.

La autenticación LDAP de Zabbix funciona al menos con Microsoft Active Directory y OpenLDAP.

Si sólo se configura el inicio de sesión LDAP, el usuario también debe existir en Zabbix, sin embargo, su contraseña de Zabbix no se utilizará. Si la autenticación es exitosa, Zabbix emparejará un nombre de usuario local con el atributo de nombre de usuario devuelto por LDAP.

Aprovisionamiento de usuarios

Es posible configurar el aprovisionamiento de usuarios JIT (just-in-time) para usuarios LDAP. En este caso, no es necesario que un usuario ya exista en Zabbix. La cuenta de usuario puede crearse cuando el usuario inicia sesión en Zabbix por primera vez.

Cuando un usuario LDAP introduce su nombre de inicio de sesión LDAP y su contraseña, Zabbix comprueba en el servidor LDAP predeterminado si este usuario existe. Si el usuario existe y todavía no tiene una cuenta en Zabbix, se crea un nuevo usuario en Zabbix y el usuario puede iniciar sesión.

Un usuario creado mediante aprovisionamiento JIT se asocia con el servidor LDAP (directorio) que está configurado como predeterminado en el momento de su creación. Cambiar posteriormente el servidor LDAP predeterminado no cambia ni actualiza el servidor LDAP vinculado a los usuarios que ya fueron aprovisionados.

Si el aprovisionamiento JIT está habilitado, se debe especificar un grupo de usuarios para los usuarios desaprovisionados en la pestaña Authentication.

El aprovisionamiento JIT también permite actualizar las cuentas de usuario aprovisionadas en función de los cambios en LDAP. Por ejemplo, si un usuario se mueve de un grupo LDAP a otro, el usuario también se moverá de un grupo a otro en Zabbix; si un usuario se elimina de un grupo LDAP, el usuario también se eliminará del grupo en Zabbix y, si no pertenece a ningún otro grupo, se añadirá al grupo de usuarios para usuarios desaprovisionados. Las cuentas de usuario aprovisionadas se actualizan según el período de aprovisionamiento configurado o cuando el usuario inicia sesión en Zabbix.

Tenga en cuenta que el aprovisionamiento en segundo plano lo realiza el frontend de Zabbix cuando el usuario está interactuando con él o al menos tiene una página del frontend abierta en el navegador. No existen procesos dedicados en segundo plano para aprovisionar usuarios.

LDAP admite tres formas de vincularse al directorio para autenticación y búsquedas:

  • Vinculación anónima — no se proporciona Bind DN / Bind password y el servidor LDAP permite consultas anónimas.
  • Usuario de vinculación dedicado (cuenta de servicio) — se configura una cuenta LDAP específica en Bind DN / Bind password y Zabbix la utiliza para búsquedas y aprovisionamiento. Esta es la opción recomendada y más flexible porque Zabbix puede realizar búsquedas y aprovisionamiento en segundo plano sin credenciales de usuario final.
  • Vinculación directa de usuario — Zabbix realiza la vinculación usando las credenciales que el usuario introduce al iniciar sesión (sin Bind DN / Bind password configurados); esto se configura incluyendo un marcador de posición como uid=%{user} en el DN base. En este modo, Zabbix solo tiene acceso a la contraseña del usuario durante el inicio de sesión interactivo. Como resultado, las acciones de aprovisionamiento que requieren autenticarse en LDAP fuera de la sesión de inicio de sesión del usuario (por ejemplo, usar el botón Provision now o ejecutar el aprovisionamiento en segundo plano cuando el usuario no ha iniciado sesión activamente) no pueden autenticarse y, por lo tanto, no funcionarán. El aprovisionamiento y las actualizaciones para la vinculación directa de usuario ocurren solo en el momento en que el usuario inicia sesión.

Varios servidores

Se pueden definir varios servidores LDAP, si es necesario. Por ejemplo, se puede utilizar un servidor diferente para autenticar a un grupo de usuarios diferente. Una vez configurados los servidores LDAP, en la configuración del grupo de usuarios es posible seleccionar el servidor LDAP requerido para el grupo de usuarios respectivo.

Si un usuario pertenece a varios grupos de usuarios y a varios servidores LDAP, se utilizará para la autenticación el primer servidor de la lista de servidores LDAP ordenados por nombre en orden ascendente.

Configuración

Parámetros de configuración:

Parameter Description
Enable LDAP authentication Marque la casilla para habilitar la autenticación LDAP.
Enable JIT provisioning Marque la casilla para habilitar el aprovisionamiento JIT.
Servers Haga clic en Add para configurar un servidor LDAP (consulte LDAP server configuration a continuación).
Case-sensitive login Desmarque la casilla para deshabilitar el inicio de sesión sensible a mayúsculas y minúsculas para los nombres de usuario (habilitado de forma predeterminada).
Deshabilitar el inicio de sesión sensible a mayúsculas y minúsculas permite, por ejemplo, iniciar sesión como "admin" incluso si el usuario de Zabbix es "Admin" o "ADMIN".
Tenga en cuenta que, si el inicio de sesión sensible a mayúsculas y minúsculas está deshabilitado y hay varios usuarios de Zabbix con nombres de usuario similares (por ejemplo, Admin y admin), el inicio de sesión para esos usuarios siempre será denegado con el siguiente mensaje de error: "Authentication failed: supplied credentials are not unique."
Provisioning period Establezca el período de aprovisionamiento, es decir, con qué frecuencia se aprovisionará al usuario autenticado mientras trabaja con el frontend.

Configuración del server LDAP

Parámetros de configuración del server LDAP:

Parameter Description
Name Nombre del server LDAP en la configuración de Zabbix.
Host Nombre de host, IP o URI del server LDAP. Ejemplos: ldap.example.com, 127.0.0.1, ldap://ldap.example.com
Para un server LDAP seguro, use el protocolo ldaps y el nombre de host. Ejemplo: ldaps://ldap.example.com
Con OpenLDAP 2.x.x y versiones posteriores, se puede usar un URI LDAP completo del tipo ldap://hostname:port o ldaps://hostname:port.
Port Puerto del server LDAP. El valor predeterminado es 389.
Para una conexión LDAP segura, el número de puerto normalmente es 636.
No se usa cuando se emplean URI LDAP completos.
Base DN Ruta base a las cuentas de usuario en el server LDAP:
ou=Users,ou=system (para OpenLDAP),
DC=company,DC=com (para Microsoft Active Directory)
uid=%{user},dc=example,dc=com (para enlace directo de usuario, consulte una nota más abajo)
Search attribute Atributo de la cuenta LDAP usado para la búsqueda:
uid (para OpenLDAP),
sAMAccountName (para Microsoft Active Directory)
Bind DN Cuenta LDAP para enlazar y buscar en el server LDAP, ejemplos:
uid=ldap_search,ou=system (para OpenLDAP),
CN=ldap_search,OU=user_group,DC=company,DC=com (para Microsoft Active Directory)
También se admite el enlace anónimo. Tenga en cuenta que el enlace anónimo abre potencialmente la configuración del dominio a usuarios no autorizados (información sobre usuarios, equipos, servers, grupos, servicios, etc.). Por motivos de seguridad, deshabilite los enlaces anónimos en los hosts LDAP y use acceso autenticado en su lugar.
Bind password Contraseña LDAP de la cuenta para enlazar y buscar en el server LDAP.
Description Descripción del server LDAP.
Configure JIT provisioning Marque esta casilla para mostrar las opciones relacionadas con el aprovisionamiento JIT.
Group configuration Seleccione el método de configuración de grupos:
memberOf - mediante la búsqueda de usuarios y su atributo de pertenencia a grupos
groupOfNames - mediante la búsqueda de grupos a través del atributo member
Tenga en cuenta que memberOf es preferible porque es más rápido; use groupOfNames si su server LDAP no admite memberOf o si se requiere filtrado de grupos.
Group name attribute Especifique el atributo del que obtener el nombre del grupo a partir de todos los objetos del atributo memberOf (consulte el campo User group membership attribute)
El nombre del grupo es necesario para la asignación de grupos de usuarios.
User group membership attribute Especifique el atributo que contiene información sobre los grupos a los que pertenece el usuario (por ejemplo, memberOf).
Por ejemplo, el atributo memberOf puede contener información como esta: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com
Este campo solo está disponible para el método memberOf.
User name attribute Especifique el atributo que contiene el nombre del usuario.
User last name attribute Especifique el atributo que contiene el apellido del usuario.
User group mapping Asigne un patrón de grupo de usuarios LDAP a un grupo de usuarios y rol de usuario de Zabbix.
Esto es necesario para determinar qué grupo/rol de usuario obtendrá el usuario aprovisionado en Zabbix.
Haga clic en Add para añadir una asignación.
El campo LDAP group pattern admite comodines. El nombre del grupo debe coincidir con un grupo existente.
Si un usuario LDAP coincide con varios grupos de usuarios de Zabbix, el usuario pasa a ser miembro de todos ellos.
Si un usuario coincide con varios roles de usuario de Zabbix, obtendrá el que tenga el nivel de permisos más alto entre ellos.
Media type mapping Asigne los atributos LDAP media del usuario (por ejemplo, correo electrónico) a los medios de usuario de Zabbix para enviar notificaciones (el valor del atributo se usa como campo Send to del medio).
Advanced configuration Haga clic en el encabezado Advanced configuration para mostrar las opciones de configuración avanzada (consulte más abajo).
StartTLS Marque la casilla para usar la operación StartTLS al conectarse al server LDAP. La conexión fallará si el server no admite StartTLS.
StartTLS no se puede usar con servers que usan el protocolo ldaps.
Search filter Defina una cadena personalizada al autenticar un usuario en LDAP. Se admiten los siguientes marcadores de posición:
%{attr} - nombre del atributo de búsqueda (uid, sAMAccountName)
%{user} - valor del nombre de usuario a autenticar
Por ejemplo, para realizar una búsqueda sensible a mayúsculas y minúsculas dentro de un entorno LDAP o Microsoft Active Directory que no distingue mayúsculas y minúsculas, la cadena se puede definir de la siguiente manera:
(%{attr}:caseExactMatch:=%{user}).
Si el filtro no se personaliza, LDAP usará el valor predeterminado: (%{attr}=%{user}).

Para configurar un server LDAP para enlace directo de usuario, añada un atributo uid=%{user} al parámetro Base DN (por ejemplo, uid=%{user},dc=example,dc=com) y deje vacíos los parámetros BindDN y Bind password. Al autenticarse, el marcador de posición %{user} se reemplazará por el nombre de usuario introducido durante el inicio de sesión.
Con el enlace directo de usuario, Zabbix solo tiene acceso a las credenciales del usuario durante el inicio de sesión interactivo. Por lo tanto, las tareas de aprovisionamiento que funcionan sin un inicio de sesión interactivo (por ejemplo, el botón Provision now o el método de API user.provision) ignorarán a los usuarios que se autentiquen mediante enlace directo de usuario porque Zabbix no puede enlazar en su nombre. Use enlace anónimo o un usuario de enlace dedicado (cuenta de servicio) si necesita que el aprovisionamiento y las búsquedas LDAP funcionen desde el frontend sin requerir que el usuario final haya iniciado sesión.

Los siguientes campos son específicos de "groupOfNames" como método de Group configuration:

Parameter Description
Group base DN Ruta base a los grupos en el server LDAP.
Group name attribute Especifique el atributo para obtener el nombre del grupo en la ruta base especificada a los grupos.
El nombre del grupo es necesario para la asignación de grupos de usuarios.
Group member attribute Especifique el atributo que contiene información sobre los miembros del grupo en LDAP (por ejemplo, member).
Reference attribute Especifique el atributo de referencia para el filtro de grupo (consulte el campo Group filter).
Luego use %{ref} en el filtro de grupo para obtener valores del atributo especificado aquí.
Group filter Especifique el filtro para recuperar el grupo del que el usuario es miembro.
Por ejemplo, (member=uid=%{ref},ou=Users,dc=example,dc=com) coincidirá con "User1" si el atributo member del grupo es uid=User1,ou=Users,dc=example,dc=com y devolverá el grupo del que "User1" es miembro.

En caso de problemas con los certificados, para que funcione una conexión LDAP segura (ldaps) puede ser necesario añadir una línea TLS_REQCERT allow al archivo de configuración /etc/openldap/ldap.conf. Esto puede reducir la seguridad de la conexión al catálogo LDAP.

Se recomienda crear una cuenta LDAP separada (Bind DN) para realizar el enlace y las búsquedas en el server LDAP con privilegios mínimos en LDAP, en lugar de usar cuentas de usuario reales (utilizadas para iniciar sesión en el frontend de Zabbix).
Este enfoque proporciona más seguridad y no requiere cambiar la Bind password cuando el usuario cambia su propia contraseña en el server LDAP.
En la tabla anterior, es la cuenta ldap_search.

Probar acceso

El botón Probar permite comprobar el acceso del usuario:

Parámetro Descripción
Usuario Nombre de usuario LDAP a probar (rellenado previamente con el nombre de usuario actual de la interfaz de Zabbix). Este nombre de usuario debe existir en el servidor LDAP.
Zabbix no activará la autenticación LDAP si no puede autenticar al usuario de prueba.
Contraseña de usuario Contraseña del usuario LDAP a probar.