Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

3 SAML

Descripción general

La autenticación SAML 2.0 puede utilizarse para iniciar sesión en Zabbix.

Si solo se configura el inicio de sesión SAML, 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 SAML.

Aprovisionamiento de usuarios

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

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

Además del aprovisionamiento JIT, también es posible habilitar y configurar el aprovisionamiento SCIM (System for Cross-domain Identity Management): la gestión continua de cuentas de usuario para aquellos usuarios que han sido creados mediante aprovisionamiento de usuarios. El aprovisionamiento SCIM requiere un token de API de Zabbix (con permisos de Superadministrador) para la autenticación en Zabbix.

Por ejemplo, si un usuario se mueve de un grupo SAML a otro, el usuario también se moverá de un grupo a otro en Zabbix; si un usuario se elimina de un grupo SAML, 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.

Si SCIM está habilitado y configurado, un usuario SAML será aprovisionado en el momento en que inicie sesión en Zabbix y se actualizará continuamente en función de los cambios en SAML. Los usuarios SAML ya existentes no serán aprovisionados, y solo los usuarios aprovisionados serán actualizados. Tenga en cuenta que solo los medios válidos se añadirán a un usuario cuando este sea aprovisionado o actualizado.

Si SCIM no está habilitado, un usuario SAML será aprovisionado (y posteriormente actualizado) en el momento en que inicie sesión en Zabbix.

Si la autenticación SAML está habilitada, los usuarios podrán elegir entre iniciar sesión localmente o mediante inicio de sesión único SAML. Si se utiliza el aprovisionamiento JIT, entonces solo es posible el inicio de sesión único.

Configuración del 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 de consumidor de aserciones debe establecerse en <ruta_a_la_ui_de_zabbix>/index_sso.php?acs
  • La URL de cierre de sesión único debe establecerse en <ruta_a_la_ui_de_zabbix>/index_sso.php?sls

Ejemplos de <ruta_a_la_ui_de_zabbix>: https://example.com/zabbix/ui, http://another.example.com/zabbix, http://<cualquier_dirección_ip_pública>/zabbix

Configuración de Zabbix

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

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

1. Proporcione la clave privada y los certificados del SP. Se debe proporcionar un certificado IdP (pegue o seleccione el archivo) para activar SAML a través de la interfaz web. Se debe proporcionar un certificado SP y una clave privada SP si se seleccionan las opciones Firmar o Cifrar.

Si $SSO['CERT_STORAGE'] = 'database' está configurado en zabbix.conf.php, puede pegar el texto del certificado o cargar el archivo del certificado en la interfaz web durante la configuración de SAML; no se requieren archivos en el sistema de archivos.

Si $SSO['CERT_STORAGE'] = 'file' está configurado en zabbix.conf.php, el certificado debe estar disponible en el sistema de archivos (por defecto en ui/conf/certs o la ruta configurada en zabbix.conf.php) y la interfaz web no almacenará los certificados en la base de datos. Tenga en cuenta que si $SSO['CERT_STORAGE'] no está configurado o está comentado, se asume el almacenamiento en archivos.

Por defecto, 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

El material del certificado puede importarse a través de la interfaz web pegando texto o cargando archivos. Aunque se permiten importaciones no cifradas por conveniencia en algunos entornos, se recomienda encarecidamente utilizar transporte cifrado (por ejemplo, habilite HTTPS/TLS para la interfaz web de Zabbix). Cuando los certificados/claves SAML se almacenan en la base de datos, habilite TLS/SSL para las conexiones a la base de datos para proteger el tráfico entre la aplicación y la base de datos.
Cifre las copias de seguridad de la base de datos que puedan contener certificados SAML o claves privadas, y limite el acceso a los archivos de copia de seguridad y a las tablas de la base de datos que almacenen material SAML. Restrinja los privilegios de los usuarios de la base de datos al mínimo necesario.

2. Todas las configuraciones más importantes pueden realizarse en la interfaz web de Zabbix. Sin embargo, es posible especificar configuraciones adicionales en el archivo de configuración.

Parámetros de configuración disponibles en la interfaz web de Zabbix:

Parámetro Descripción
Habilitar autenticación SAML Marque la casilla para habilitar la autenticación SAML.
Habilitar aprovisionamiento JIT Marque la casilla para habilitar el aprovisionamiento de usuarios JIT.
ID de entidad IdP El identificador único de la entidad dentro del proveedor de identidad SAML.
URL del servicio SSO La URL a la que los usuarios serán redirigidos al iniciar sesión.
URL del servicio SLO La URL a la que los usuarios serán redirigidos al cerrar sesión. Si se deja en blanco, 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 (si no coincide, la operación será rechazada).
Es posible especificar una URL o cualquier cadena de datos.
Formato de ID de nombre SP Solicite un formato de ID de nombre particular en la respuesta.

Ejemplos:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
Certificado IdP Contenido del certificado del proveedor de servicios (SP) para la configuración del servicio de inicio de sesión único (SSO) SAML.
Clave privada SP Contenido de la clave privada del proveedor de servicios (SP) para la configuración del servicio de inicio de sesión único (SSO) SAML. Proporciona autenticación segura e intercambio de datos con el proveedor de identidad (IdP).
Certificado SP Contenido del certificado del proveedor de servicios (SP) para la configuración del servicio de inicio de sesión único (SSO) SAML.
Firmar Marque las casillas para seleccionar las entidades para las que se debe habilitar la firma SAML:
Mensajes
Aserciones
Solicitudes AuthN
Solicitudes de cierre de sesión
Respuestas de cierre de sesión
Cifrar Marque las casillas para seleccionar las entidades para las que se debe habilitar el cifrado SAML:
ID de nombre
Aserciones
Inicio de sesión sensible a mayúsculas/minúsculas Desmarque la casilla para deshabilitar el inicio de sesión sensible a mayúsculas/minúsculas para los nombres de usuario (habilitado por defecto).
Deshabilitar el inicio de sesión sensible a mayúsculas/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/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: "Autenticación fallida: las credenciales proporcionadas no son únicas."
Configurar aprovisionamiento JIT Marque esta casilla para mostrar opciones relacionadas con el aprovisionamiento de usuarios JIT.
Atributo de nombre de grupo Especifique el atributo de nombre de grupo para el aprovisionamiento de usuarios JIT.
Atributo de nombre de usuario Especifique el atributo de nombre de usuario para el aprovisionamiento de usuarios JIT.
Atributo de apellido de usuario Especifique el atributo de apellido de usuario para el aprovisionamiento de usuarios JIT.
Asignación de grupo de usuarios Asigne un patrón de grupo de usuarios SAML a un grupo de usuarios y rol de usuario de Zabbix.
Esto es necesario para determinar qué grupo/rol de usuario recibirá el usuario aprovisionado en Zabbix.
Haga clic en Agregar para añadir una asignación.
El campo Patrón de grupo SAML admite comodines. El nombre del grupo debe coincidir con un grupo existente.
Si un usuario SAML coincide con varios grupos de usuarios de Zabbix, el usuario se convierte en miembro de todos ellos.
Si un usuario coincide con varios roles de usuario de Zabbix, el usuario obtendrá el nivel de permiso más alto entre ellos.
Asignación de tipo de medio Asigne los atributos de medios SAML del usuario (por ejemplo, correo electrónico) a los medios de usuario de Zabbix para el envío de notificaciones.
Habilitar aprovisionamiento SCIM Marque esta casilla para habilitar el aprovisionamiento SCIM 2.0.

Consulte ejemplos de configuración de proveedores de identidad SAML para inicio de sesión y aprovisionamiento de usuarios en Zabbix con:

Notas sobre el aprovisionamiento SCIM

Para el aprovisionamiento SCIM, especifique la ruta a la interfaz web de Zabbix y añada api_scim.php al final, en el lado del proveedor de identidad, es decir:

https://<ruta-a-la-ui-de-zabbix>/api_scim.php

Los atributos de usuario que se utilizan en Zabbix (nombre de usuario, nombre, apellido y atributos de medios) deben añadirse como atributos personalizados y, si es necesario, el espacio de nombres externo debe ser el mismo que el esquema de usuario: urn:ietf:params:scim:schemas:core:2.0:User.

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 utilizada por la biblioteca. Para la descripción de las opciones de configuración, consulte la documentación oficial de la biblioteca.

Solo se pueden establecer 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 pueden sobrescribir. La opción debug será ignorada.

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

  • false (por defecto): ignora la opción;
  • true: utiliza las cabeceras HTTP X-Forwarded-* para construir 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',
               // ...
           ],
           // ...
       ];
Configuración del frontend con Kerberos/ADFS

El archivo de configuración del frontend de Zabbix (zabbix.conf.php) se puede utilizar para configurar SSO con autenticación Kerberos y ADFS:

$SSO['SETTINGS'] = [
           'security' => [
               'requestedAuthnContext' => [
                   'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
               ],
               'requestedAuthnContextComparison' => 'exact'
           ]
       ]; 

En este caso, en el campo SP name ID de la configuración SAML establezca:

urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified