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 (justo a tiempo) para usuarios LDAP. En este caso, no es necesario que el 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 usuario y contraseña de LDAP, Zabbix comprueba en el servidor LDAP predeterminado si existe ese usuario. 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 el aprovisionamiento JIT se asocia con el servidor LDAP (directorio) establecido como predeterminado en el momento de la creación. Cambiar posteriormente el servidor LDAP predeterminado no cambia ni actualiza el servidor LDAP vinculado a los usuarios que ya se aprovisionaron.

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

El aprovisionamiento JIT también permite actualizar las cuentas de usuarios aprovisionados según los cambios realizados en LDAP. Por ejemplo, si un usuario se mueve de un grupo LDAP a otro, también se moverá de un grupo a otro en Zabbix; si se elimina a un usuario de un grupo LDAP, también se eliminará al usuario del grupo correspondiente en Zabbix y, si no pertenece a ningún otro grupo, se añadirá al grupo de usuarios para usuarios desaprovisionados. Las cuentas de usuarios aprovisionados 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 interactúa con él o, al menos, tiene abierta una página del frontend en el navegador. No existen procesos en segundo plano dedicados al aprovisionamiento de usuarios.

LDAP admite tres formas de vincularse al directorio para la autenticación y las 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 realizar búsquedas y aprovisionamiento. Esta es la opción recomendada y más flexible, ya que Zabbix puede realizar búsquedas y aprovisionamiento en segundo plano sin las credenciales del usuario final.
  • Vinculación directa del usuario: Zabbix realiza la vinculación utilizando las credenciales que el usuario introduce al iniciar sesión (sin configurar Bind DN / Bind password); esto se configura incluyendo un marcador de posición como uid=%{user} en el Base DN. 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, mediante el botón Provision now o al 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 del usuario solo se realizan 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:

Parámetro Descripción
Habilitar la autenticación LDAP Marque la casilla para habilitar la autenticación LDAP.
Habilitar el aprovisionamiento JIT Marque la casilla para habilitar el aprovisionamiento JIT.
Servidores Haga clic en Añadir para configurar un servidor LDAP (consulte Configuración del servidor LDAP a continuación).
Inicio de sesión sensible a mayúsculas y minúsculas 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" aunque el usuario de Zabbix sea "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 de esos usuarios siempre se rechazará con el siguiente mensaje de error: "Authentication failed: supplied credentials are not unique."
Período de aprovisionamiento Establezca el período de aprovisionamiento, es decir, con qué frecuencia se aprovisionará al usuario que ha iniciado sesión mientras trabaja con el frontend.

Configuración del servidor LDAP

Parámetros de configuración del servidor LDAP:

Parámetro Descripción
Name Nombre del servidor LDAP en la configuración de Zabbix.
Host Nombre de host, IP o URI del servidor LDAP. Ejemplos: ldap.example.com, 127.0.0.1, ldap://ldap.example.com
Para un servidor LDAP seguro, utilice el protocolo ldaps y el nombre de host. Ejemplo: ldaps://ldap.example.com
Con OpenLDAP 2.x.x y versiones posteriores, se puede utilizar una URI LDAP completa con el formato ldap://hostname:port o ldaps://hostname:port.
Port Puerto del servidor LDAP. El valor predeterminado es 389.
Para una conexión LDAP segura, el número de puerto normalmente es 636.
No se utiliza cuando se emplean URI LDAP completas.
Base DN Ruta base a las cuentas de usuario en el servidor LDAP:
ou=Users,ou=system (para OpenLDAP),
DC=company,DC=com (para Microsoft Active Directory)
uid=%{user},dc=example,dc=com (para la vinculación directa del usuario; consulte la nota siguiente)
Search attribute Atributo de la cuenta LDAP utilizado para la búsqueda:
uid (para OpenLDAP),
sAMAccountName (para Microsoft Active Directory)
Bind DN Cuenta LDAP para vincularse y realizar búsquedas en el servidor 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 la vinculación anónima. Tenga en cuenta que la vinculación anónima puede exponer la configuración del dominio a usuarios no autorizados (información sobre usuarios, equipos, servidores, grupos, servicios, etc.). Por motivos de seguridad, desactive las vinculaciones anónimas en los hosts LDAP y utilice en su lugar el acceso autenticado.
Bind password Contraseña LDAP de la cuenta utilizada para vincularse y realizar búsquedas en el servidor LDAP.
Description Descripción del servidor 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; utilice groupOfNames si su servidor LDAP no admite memberOf o si se requiere filtrar grupos.
Group name attribute Especifique el atributo del que se obtendrá el nombre del grupo 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 los apellidos del usuario.
User group mapping Asigne un patrón de grupo de usuarios LDAP a un grupo de usuarios y un rol de usuario de Zabbix.
Esto es necesario para determinar qué grupo/rol de usuario recibirá el usuario aprovisionado en Zabbix.
Haga clic en Add para añadir una asignación.
El campo LDAP group pattern admite comodines (consulte la nota siguiente). El nombre del grupo debe coincidir con un grupo existente.
Si un usuario LDAP coincide con varios grupos de usuarios de Zabbix, se convierte en miembro de todos ellos.
Si un usuario coincide con varios roles de usuario de Zabbix, recibirá el que tenga el nivel de permisos más alto entre ellos.
Media type mapping Asigne los atributos LDAP de medios del usuario (por ejemplo, el correo electrónico) a los medios del usuario de Zabbix para enviar notificaciones (el valor del atributo se utiliza 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 utilizar la operación StartTLS al conectarse al servidor LDAP. La conexión fallará si el servidor no admite StartTLS.
StartTLS no se puede utilizar con servidores que emplean 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 que se autenticará
Por ejemplo, para realizar una búsqueda que distinga entre mayúsculas y minúsculas en un entorno LDAP o Microsoft Active Directory que no distingue entre mayúsculas y minúsculas, la cadena se puede definir de la siguiente manera:
(%{attr}:caseExactMatch:=%{user}).
Si el filtro no se personaliza, LDAP utilizará el valor predeterminado: (%{attr}=%{user}).

Para configurar un servidor LDAP para la vinculación directa del usuario, añada el 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 sustituirá por el nombre de usuario introducido durante el inicio de sesión.
Con la vinculación directa del 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 la vinculación directa del usuario, porque Zabbix no puede vincularse en su nombre. Utilice una vinculación anónima o un usuario de vinculación 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.

En el campo LDAP group pattern, el comodín * se comporta como .* en las expresiones regulares y coincide con cero o más caracteres. Por ejemplo, el patrón *Demo*Admin coincide con los grupos LDAP WebDemoSuperAdmin y WebDemoAdmin. El patrón debe coincidir con el nombre completo del grupo, por lo que Demo*Admin (sin el * inicial) no coincide con ninguno de estos grupos.

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

Parámetro Descripción
Group base DN Ruta base a los grupos en el servidor LDAP.
Group name attribute Especifique el atributo del que se obtendrá el nombre del grupo en la ruta base especificada para 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 grupos (consulte el campo Group filter).
A continuación, utilice %{ref} en el filtro de grupos para obtener los valores del atributo especificado aquí.
Group filter Especifique el filtro para recuperar el grupo al que pertenece el usuario.
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 al que pertenece "User1".

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 independiente (Bind DN) para realizar la vinculación y las búsquedas en el servidor LDAP con privilegios mínimos en LDAP, en lugar de utilizar cuentas de usuario reales (utilizadas para iniciar sesión en el frontend de Zabbix).
Este enfoque proporciona mayor seguridad y evita tener que cambiar Bind password cuando el usuario cambia su propia contraseña en el servidor LDAP.
En la tabla anterior, el nombre de esta cuenta es ldap_search.

Prueba de acceso

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

Parámetro Descripción
Inicio de sesión Nombre de usuario LDAP que se probará (prellenado con el nombre del usuario actual de Zabbix frontend). 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 del usuario Contraseña del usuario LDAP que se probará.