[comment]: # ({9b3e99c3-64e71448})
# 2 LDAP

[comment]: # ({/9b3e99c3-64e71448})

[comment]: # ({d8164d18-28a1e9c5})
#### Descripción general

Se puede utilizar la [autenticación](/manual/web_interface/frontend_sections/users/authentication) 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.

[comment]: # ({/d8164d18-28a1e9c5})

[comment]: # ({0ce2f718-3654e16b})
#### 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.

:::noteimportant
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](#configuration) 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*](/manual/web_interface/frontend_sections/users/user_list#mass-editing-options) 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.

[comment]: # ({/0ce2f718-3654e16b})

[comment]: # ({df61670c-c7234b3e})
#### 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](/manual/config/users_and_usergroups/usergroup#configuration) 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.

[comment]: # ({/df61670c-c7234b3e})

[comment]: # ({7e373a5b-e085db50})
#### Configuración

![](../../../../../../assets/en/manual/web_interface/frontend_sections/users/auth_ldap.png)

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](#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).<br>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".<br>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.|

[comment]: # ({/7e373a5b-e085db50})

[comment]: # ({250025f6-9c2f07ee})
#### Configuración del server LDAP

![](../../../../../../assets/en/manual/web_interface/frontend_sections/users/auth_ldap_server.png)

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<br>Para un server LDAP seguro, use el protocolo *ldaps* y el nombre de host. Ejemplo: ldaps://ldap.example.com<br>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.<br>Para una conexión LDAP segura, el número de puerto normalmente es 636.<br>No se usa cuando se emplean URI LDAP completos.|
|*Base DN*|Ruta base a las cuentas de usuario en el server LDAP:<br>ou=Users,ou=system (para OpenLDAP),<br>DC=company,DC=com (para Microsoft Active Directory)<br> 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:<br>uid (para OpenLDAP),<br>sAMAccountName (para Microsoft Active Directory)|
|*Bind DN*|Cuenta LDAP para enlazar y buscar en el server LDAP, ejemplos:<br>uid=ldap\_search,ou=system (para OpenLDAP),<br>CN=ldap\_search,OU=user\_group,DC=company,DC=com (para Microsoft Active Directory)<br>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:<br>**memberOf** - mediante la búsqueda de usuarios y su atributo de pertenencia a grupos<br>**groupOfNames** - mediante la búsqueda de grupos a través del atributo member<br>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*)<br>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`).<br>Por ejemplo, el atributo memberOf puede contener información como esta: `memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com`<br>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.<br>Esto es necesario para determinar qué grupo/rol de usuario obtendrá el usuario aprovisionado en Zabbix.<br>Haga clic en *Add* para añadir una asignación.<br>El campo *LDAP group pattern* admite comodines. El nombre del grupo debe coincidir con un grupo existente.<br>Si un usuario LDAP coincide con varios grupos de usuarios de Zabbix, el usuario pasa a ser miembro de todos ellos.<br>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](/manual/config/notifications/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*](/manual/config/notifications/media#user-media) 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.<br>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:<br>`%{attr}` - nombre del atributo de búsqueda (uid, sAMAccountName)<br>`%{user}` - valor del nombre de usuario a autenticar<br>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:<br>`(%{attr}:caseExactMatch:=%{user})`.<br>Si el filtro no se personaliza, LDAP usará el valor predeterminado: `(%{attr}=%{user})`.|

::: noteclassic
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.<br>
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`](/manual/api/reference/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*:

![](../../../../../../assets/en/manual/web_interface/frontend_sections/users/auth_ldap_server2.png)

|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.<br>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*).<br>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.<br>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.|

::: notewarning
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.
:::

::: notetip
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).<br>
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.<br>
En la tabla anterior, es la cuenta *ldap\_search*.
:::

[comment]: # ({/250025f6-9c2f07ee})

[comment]: # ({6b688a6e-5c3e92b7})
##### 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.<br>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.|

[comment]: # ({/6b688a6e-5c3e92b7})
