3 Autenticación

Descripción general

La sección Administración → Autenticación permite especificar el método de autenticación de usuario para Zabbix y los requisitos de la contraseña interna.

Los métodos de autenticación disponibles son: autenticación interna, HTTP, LDAP y SAML.

Autenticación predeterminada

De forma predeterminada, Zabbix utiliza la autenticación interna de Zabbix para todos los usuarios. Es posible cambiar el método predeterminado a LDAP en todo el sistema o habilitar la autenticación LDAP solo para grupos de usuarios específicos.

Para configurar LDAP como método de autenticación predeterminado para todos los usuarios, navegue hasta la pestaña LDAP y configure los parámetros de autenticación, luego regrese a la pestaña Autenticación y cambie el selector Autenticación predeterminada a LDAP.

Tenga en cuenta que el método de autenticación se puede ajustar en la página grupo de usuarios. Incluso si la autenticación LDAP se establece globalmente, algunos grupos de usuarios aún pueden ser autenticados por Zabbix. Estos grupos deben tener acceso a la interfaz establecido a Interno. Y viceversa, si la autenticación interna se utiliza globalmente, los detalles de autenticación LDAP se pueden especificar y utilizar para grupos de usuarios específicos cuyo acceso a la interfaz está configurado en LDAP. Si un usuario está incluido en al menos un grupo de usuarios con autenticación LDAP, este usuario no podrá utilizar el método de autentificación interna.

Se pueden utilizar los métodos de autenticación HTTP y SAML 2.0 además de los métodos de autentificación predeterminados.

Autenticación interna

La pestaña Autenticación permite definir requisitos de complejidad de contraseña personalizados para usuarios internos de Zabbix.

Se pueden configurar las siguientes opciones de política de contraseñas:

Parámetro Descripción
Longitud mínima de contraseña De manera predeterminada, la longitud mínima de contraseña se establece en 8. Rango admitido: 1-70. Tenga en cuenta que las contraseñas con más de 72 caracteres se truncarán.
La contraseña debe contener Marque una o varias casillas de verificación para exigir el uso de caracteres específicos en una contraseña:
-una letra latina mayúscula y una minúscula
-un dígito
-un carácter especial

Pase el cursor sobre el signo de interrogación para ver una pista con la lista de caracteres para cada opción.
Evite contraseñas fáciles de adivinar Si se marca, se comprobará la contraseña en función de los siguientes requisitos:
- no debe contener el nombre de usuario, el apellido o el nombre de usuario
- no debe ser una de las contraseñas comunes o específicas del contexto.

La lista de contraseñas comunes y específicas del contexto se genera automáticamente a partir de la lista de las "100.000 contraseñas principales" de NCSC, la lista de las "1.000.000 contraseñas principales" de SecLists y la lista de contraseñas específicas del contexto de Zabbix. Los usuarios internos no podrán establecer contraseñas incluidas en esta lista, ya que dichas contraseñas se consideran débiles debido a su uso común.

Los cambios en los requisitos de complejidad de las contraseñas no afectarán a las contraseñas de usuarios existentes, pero si un usuario existente decide cambiar una contraseña, la nueva contraseña deberá cumplir con los requisitos actuales. Se mostrará una pista con la lista de requisitos junto al campo Contraseña en el perfil de usuario y en el formulario de configuración de usuario accesible desde el menú Administración→Usuarios.

Autenticación HTTP

Se puede utilizar la autenticación basada en HTTP o servidor web (por ejemplo: autenticación básica, NTLM/Kerberos) para comprobar los nombres de usuario y las contraseñas. Tenga en cuenta que también debe existir un usuario en Zabbix, pero no se utilizará su contraseña de Zabbix.

¡Tenga cuidado! Asegúrese de que la autenticación del servidor web está configurada y funciona correctamente antes de activarla.

Parámetros de configuración:

Parámetro Descripción
Habilitar autenticación HTTP Marque la casilla de verificación para habilitar la autenticación HTTP. Al pasar el mouse sobre aparecerá un cuadro de advertencia que indica que, en el caso de la autenticación del servidor web, todos los usuarios (incluso con acceso al frontend configurado en LDAP/Internal) serán autenticados por el servidor web, no por Zabbix.
Formulario de inicio de sesión predeterminado Especifique si desea dirigir a los usuarios no autenticados a:
Formulario de inicio de sesión de Zabbix: página de inicio de sesión estándar de Zabbix.
Formulario de inicio de sesión HTTP: página de inicio de sesión HTTP.
Se recomienda habilitar la autenticación basada en servidor web solo para la página index_http.php. Si el Formulario de inicio de sesión predeterminado está configurado como 'Página de inicio de sesión HTTP', el usuario iniciará sesión automáticamente si el módulo de autenticación del servidor web establece un inicio de sesión de usuario válido en la variable $_SERVER.
Las claves $_SERVER admitidas son PHP_AUTH_USER, REMOTE_USER, AUTH_USER.
Eliminar nombre de dominio Una lista delimitada por comas de nombres de dominio que deben eliminarse del nombre de usuario.
Por ejemplo, comp,any: si el nombre de usuario es 'Admin@any', 'comp\Admin', el usuario iniciará sesión como 'Admin'; si el nombre de usuario es 'notacompany\Admin', se denegará el inicio de sesión.
Inicio de sesión con distinción entre mayúsculas y minúsculas Desmarque la casilla de verificación para deshabilitar el inicio de sesión con distinción entre mayúsculas y minúsculas (habilitado de forma predeterminada) para los nombres de usuario.
Por ejemplo, Deshabilitar el inicio de sesión que distingue entre mayúsculas y minúsculas e iniciar sesión con, por ejemplo, el usuario 'ADMIN' incluso si el usuario de Zabbix es 'Admin'.
Nota: si se deshabilita el inicio de sesión que distingue entre mayúsculas y minúsculas, se denegará el inicio de sesión si existen varios usuarios en la base de datos de Zabbix con nombres de usuario similares (por ejemplo, Admin, admin).

Para los usuarios internos que no pueden iniciar sesión con credenciales HTTP (con el formulario de inicio de sesión HTTP configurado como predeterminado) lo que genera el error 401, es posible que desee agregar una línea ErrorDocument 401 /index.php?form=default a las directivas de autenticación básica, que redireccionarán al formulario de inicio de sesión de Zabbix normal.

Autenticación LDAP

La autenticación LDAP externa se puede utilizar para comprobar los nombres de usuario y las contraseñas. Tenga en cuenta que un usuario también debe existir en Zabbix, sin embargo, su contraseña de Zabbix no se utilizará.

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

Parámetros de configuración:

Parámetro Descripción
Habilitar autenticación LDAP Marque la casilla de verificación para habilitar la autenticación LDAP.
Host LDAP Nombre del servidor LDAP. Por ejemplo: ldap://ldap.zabbix.com
Para un servidor LDAP seguro, utilice el protocolo ldaps.
ldaps://ldap.zabbix.com
Con OpenLDAP 2.x.x y versiones posteriores, se puede utilizar un URI LDAP completo 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 utilizan URI LDAP completos.
Base DN Ruta base para buscar cuentas:
ou=Users,ou=system (para OpenLDAP),
DC=company,DC=com (para Microsoft Active Directory)
Search attribute Atributo de cuenta LDAP utilizado para la búsqueda:
uid (para OpenLDAP),
sAMAccountName (para Microsoft Active Directory)
DN de enlace Cuenta LDAP para realizar enlaces y 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 el enlace anónimo. Tenga en cuenta que el enlace anónimo puede abrir la configuración del dominio a usuarios no autorizados (información sobre usuarios, equipos, servidores, grupos, servicios, etc.). Por motivos de seguridad, deshabilite los enlaces anónimos en los hosts LDAP y utilice el acceso autenticado en su lugar.
Inicio de sesión con distinción entre mayúsculas y minúsculas Desmarque la casilla de verificación para deshabilitar el inicio de sesión con distinción entre mayúsculas y minúsculas (habilitado de forma predeterminada) para los nombres de usuario.
Por ejemplo, Deshabilitar el inicio de sesión que distingue entre mayúsculas y minúsculas e iniciar sesión, por ejemplo, con el usuario 'ADMIN' incluso si el usuario de Zabbix es 'Admin'.
Nota: si se deshabilita el inicio de sesión que distingue entre mayúsculas y minúsculas, se denegará el inicio de sesión si existen varios usuarios en la base de datos de Zabbix con nombres de usuario similares (por ejemplo, Admin, admin).
Contraseña de enlace Contraseña LDAP de la cuenta para vincular y buscar en el servidor LDAP.
Autenticación de prueba Encabezado de una sección para pruebas
Inicio de sesión Nombre de un usuario de prueba (que actualmente está conectado en 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 LDAP del usuario de prueba.

En caso de problemas con los certificados, para que funcione una conexión LDAP segura (ldaps), es posible que deba agregar una línea TLS_REQCERT allow al archivo de configuración /etc/openldap/ldap.conf. 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 la búsqueda en el servidor LDAP con privilegios mínimos en el LDAP en lugar de usar cuentas de usuario reales (usadas para iniciar sesión en el frontend de Zabbix).
Este enfoque proporciona más seguridad y no requiere cambiar la contraseña de vinculación cuando el usuario cambia su propia contraseña en el servidor LDAP.
En la tabla anterior, el nombre de la cuenta es ldap_search.

Autenticación SAML

La Autenticación SAML 2.0 se puede utilizar para iniciar sesión en Zabbix. Tenga en cuenta que El usuario debe existir en Zabbix, sin embargo, su contraseña de Zabbix no será usadA. Si la autenticación es exitosa, Zabbix asignará un usuario local con el atributo de nombre de usuario devuelto por SAML.

Si la autenticación SAML está habilitada, los usuarios podrán elegir entre iniciar sesión localmente o mediante el inicio de sesión único SAML.

Configurar el proveedor de identidad

Para trabajar con Zabbix, un proveedor de identidad SAML (onelogin.com, auth0.com, okta.com, etc.) debe configurarse de la siguiente manera:

  • La URL del consumidor de aserción debe establecerse en <ruta_a_zabbix_ui>/index_sso.php?acs
  • La URL de cierre de sesión única debe configurarse en <ruta_a_zabbix_ui>/index_sso.php?sls

<ruta_a_zabbix_ui> ejemplos: %% https://example.com/zabbix/ui, http://otro.ejemplo.com/zabbix, http://<cualquier_ip_publica>/zabbix %%

Configuración de Zabbix

Es necesario instalar php-openssl si desea utilizar la autenticación SAML en el frontend.

Para utilizar la autenticación SAML, Zabbix debe configurarse de la siguiente manera:

1. La clave privada y el certificado deben almacenarse en ui/conf/certs/, a menos que se proporcionen rutas personalizadas en zabbix.conf.php.

De forma predeterminada, Zabbix buscará en las siguientes ubicaciones:

  • ui/conf/certs/sp.key - Archivo de clave privada SP
  • ui/conf/certs/sp.crt - Archivo de certificado SP
  • ui/conf/certs/idp.crt - Archivo de certificado IDP

2. Todos los ajustes más importantes se pueden configurar en el frontend de Zabbix. Sin embargo, es posible especificar configuraciones adicionales en el archivo de configuración.

Parámetros de configuración, disponibles en el frontend de Zabbix:

Parámetro Descripción
Habilitar autenticación SAML Marque la casilla de verificación para habilitar la autenticación SAML.
IDP entity ID El identificador único del proveedor de identidad SAML.
URL del servicio SSO La URL a la que se redireccionará a los usuarios al iniciar sesión.
URL del servicio SLO La URL a la que se redireccionará a los usuarios al cerrar sesión. Si se deja vacío, no se utilizará el servicio SLO.
// Atributo de nombre de usuario// Atributo SAML que se utilizará como nombre de usuario al iniciar sesión en Zabbix.
La lista de valores admitidos la determina el proveedor de identidad.

Ejemplos:
uid
userprincipalname
samaccountname
username
userusername
urn:oid:0.9.2342.19200300.100.1.1
urn:oid:1.3.6.1.4.1.5923.1.1.1.13
urn:oid:0.9.2342.19200300.100.1.44
ID de entidad SP El identificador único del proveedor de servicios SAML.
Formato de ID de nombre de SP Define qué formato de identificador de nombre se debe utilizar.

Ejemplos:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Firma Marque las casillas de verificación para seleccionar las entidades para las que se debe habilitar la firma SAML:
Mensajes
Afirmaciones
Solicitudes de autenticación
Solicitudes de cierre de sesión
Respuestas de cierre de sesión
Encriptar Marque las casillas de verificación para seleccionar las entidades para las que se debe habilitar el cifrado SAML:
Afirmaciones
ID de nombre
Inicio de sesión con distinción entre mayúsculas y minúsculas Marque la casilla de verificación para habilitar el inicio de sesión con distinción entre mayúsculas y minúsculas (deshabilitado de forma predeterminada) para los nombres de usuario.
Por ejemplo, deshabilite el inicio de sesión con distinción entre mayúsculas y minúsculas e inicie sesión con, por ejemplo, el usuario 'ADMIN' incluso si el usuario de Zabbix es 'Admin'.
Nota que si el inicio de sesión con distinción entre mayúsculas y minúsculas está deshabilitado, se denegará el inicio de sesión si existen varios usuarios en la base de datos de Zabbix con nombres de usuario similares (por ejemplo, Admin, admin).
Configuración avanzada

Se pueden configurar parámetros SAML adicionales en el archivo de configuración del frontend de Zabbix (zabbix.conf.php):

  • $SSO['SP_KEY'] = '<ruta al archivo de clave privada del SP>';
  • $SSO['SP_CERT'] = '<ruta al archivo de certificado del SP>';
  • $SSO['IDP_CERT'] = '<ruta al archivo de certificado del IDP>';
  • $SSO['SETTINGS']

Zabbix utiliza la biblioteca OneLogin's SAML PHP Toolkit (versión 3.4.1). La estructura de la sección $SSO['SETTINGS'] debe ser similar a la estructura utilizada por la biblioteca. Para obtener una descripción de las opciones de configuración, consulte la documentación de la biblioteca oficial (https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings).

Solo se pueden configurar las siguientes opciones como parte de $SSO['SETTINGS']:

  • strict
  • baseurl
  • compress
  • contactPerson
  • organization
  • sp (solo las opciones especificadas en esta lista)
  • attributeConsumingService
  • x509certNew
  • idp (solo las opciones especificadas en esta lista)
  • singleLogoutService (solo una opción)
  • responseUrl
  • certFingerprint
  • certFingerprintAlgorithm
  • x509certMulti
  • security (solo las opciones especificadas en esta lista)
  • signMetadata
  • wantNameId
  • requestedAuthnContext
  • requestedAuthnContextComparison
  • wantXMLValidation
  • relaxDestinationValidation
  • destinationStrictlyMatches
  • rejectUnsolicitedResponsesWithInResponseTo
  • signatureAlgorithm
  • digestAlgorithm
  • lowercaseUrlencoding

Todas las demás opciones se tomarán de la base de datos y no se podrán anular. La opción debug se ignorará.

Además, si la interfaz de usuario de Zabbix está detrás de un proxy o un balanceador de carga, se puede utilizar la opción personalizada use_proxy_headers:

  • false (predeterminado): ignorar la opción;
  • true: utilizar encabezados HTTP X-Forwarded-* para crear la URL base.

Si utiliza un balanceador de carga para conectarse a la instancia de Zabbix, donde el balanceador de carga utiliza TLS/SSL y Zabbix no, debe indicar los parámetros 'baseurl', 'strict' y 'use_proxy_headers' de la siguiente manera:

$SSO['SETTINGS']=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]

Ejemplo de configuración:

$SSO['SETTINGS'] = [
       'security' => [
       'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
       'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
       // ...
       ],
       //... 
       ];