Configuración de SAML con OneLogin

Descripción general

Esta sección proporciona directrices para configurar el inicio de sesión único y el aprovisionamiento de usuarios en Zabbix desde OneLogin utilizando la autenticación SAML 2.0.

Configuración de OneLogin

Creación de la aplicación

1. Inicie sesión en su cuenta en OneLogin. Para fines de prueba, puede crear una cuenta gratuita de desarrollador en OneLogin.

2. En la interfaz web de OneLogin, vaya a Applications > Applications.

3. Haga clic en "Add App" y busque la aplicación adecuada. Las directrices de esta página se basan en el ejemplo de la aplicación SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).

4. Para empezar, es posible que desee personalizar el nombre visible de su aplicación. También puede querer añadir el icono y los detalles de la aplicación. Después de eso, haga clic en Save.

Configuración del aprovisionamiento SSO/SCIM

1. En Configuration > Application details, establezca el endpoint de inicio de sesión único de Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs como valor de estos campos:

  • ACS (Consumer) URL Validator
  • ACS (Consumer) URL

Tenga en cuenta el uso de "http", y no de "https", para que el parámetro acs no se elimine de la solicitud.

También es posible utilizar "https". Para usarlo con Zabbix, añada la siguiente línea al archivo de configuración del frontend (zabbix.conf.php):

$SSO['SETTINGS'] = ['use_proxy_headers' => true];

Deje las demás opciones con sus valores predeterminados.

2. En Configuration > API connection, establezca los siguientes valores:

  • SCIM Base URL: https://<zabbix-instance-url>/zabbix/api_scim.php
  • SCIM JSON Template: debe contener todos los atributos personalizados que desee pasar a Zabbix mediante SCIM, como user_name, user_lastname, user_email y user_mobile:
{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "userName": "{$parameters.scimusername}",
  "name": {
    "familyName": "{$user.lastname}",
    "givenName": "{$user.firstname}"
  },
   "user_name": "{$user.firstname}",
   "user_lastname": "{$user.lastname}",
   "user_mobile": "{$user.phone}",
   "user_email": "{$user.email}"
}

Los nombres de los atributos son arbitrarios. Se pueden utilizar nombres de atributos diferentes; sin embargo, es necesario que coincidan con el valor del campo correspondiente en la configuración SAML de Zabbix.

Tenga en cuenta que, para que el aprovisionamiento de usuarios funcione, OneLogin debe recibir en la respuesta un atributo 'name' con 'givenName' y 'familyName', aunque el proveedor de servicios no lo haya solicitado. Por lo tanto, es necesario especificarlo en el esquema, en la sección de configuración de la aplicación.

  • SCIM Bearer Token: introduzca un token de API de Zabbix con permisos de Super admin.

Haga clic en Enable para activar la conexión.

3. En la página Provisioning, habilite la opción Provisioning:

4. La página Parameters contiene una lista de parámetros predeterminados:

  • Asegúrese de que 'scimusername' coincida con el valor de inicio de sesión del usuario en OneLogin (por ejemplo, el correo electrónico);
  • Marque la opción Include in User Provisioning para el parámetro 'Groups';
  • Haga clic en "+" para crear los parámetros personalizados necesarios para las aserciones SAML y el aprovisionamiento de usuarios, como user_name, user_lastname, user_email y user_mobile:

Al añadir un parámetro, asegúrese de marcar las opciones Include in SAML assertion y Include in User Provisioning.

  • Añada un parámetro 'group' que coincida con los roles de usuario en OneLogin. Los roles de usuario se pasarán como una cadena, separados por un punto y coma ;. Los roles de usuario de OneLogin se utilizarán para crear grupos de usuarios en Zabbix:

Verifique la lista de parámetros:

5. En la página Rules, cree asignaciones de roles de usuario al parámetro predeterminado Groups.

Puede utilizar una expresión regular para pasar roles específicos como grupos. Los nombres de los roles no deben contener ;, ya que OneLogin lo utiliza como separador al enviar un atributo con varios roles.

6. Descargue el certificado del IdP. Establezca los permisos 644 ejecutando:

chmod 644 idp.crt

Configuración de Zabbix

1. En Zabbix, vaya a Configuración de SAML y complete las opciones de configuración según la configuración de OneLogin:

Campo de Zabbix Campo de configuración en OneLogin Valor de ejemplo
IdP entity ID Issuer URL
(consulte la pestaña SSO de su aplicación en OneLogin)
SSO service URL SAML 2.0 Endpoint (HTTP)
(consulte la pestaña SSO de su aplicación en OneLogin)
SLO service URL SLO Endpoint (HTTP)
(consulte la pestaña SSO de su aplicación en OneLogin)
Username attribute Custom parameter user_email
Group name attribute Custom parameter group
User name attribute Custom parameter user_name
User last name attribute Custom parameter user_lastname

También es necesario configurar la asignación de grupos de usuarios.
La asignación de medios es opcional.
Haga clic en Update para guardar esta configuración.

2. Añada el certificado Base64 proporcionado por OneLogin.

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

Si $SSO['CERT_STORAGE'] = 'file' está establecido en el archivo de configuración, el certificado debe estar disponible en el sistema de archivos (de forma predeterminada, en ui/conf/certs o en la ruta configurada en el archivo de configuración) y el frontend no almacenará los certificados en la base de datos.
Tenga en cuenta que, si $SSO['CERT_STORAGE'] no está establecido o está comentado, se asumirá el almacenamiento en archivos y los certificados se leerán desde ui/conf/certs.

Puede acceder a la descarga del certificado en OneLogin desde Applications > SSO > haga clic en View details debajo del certificado actual.

3. Haga clic en el botón Update para guardar esta configuración.

Aprovisionamiento de usuarios SCIM

Con el aprovisionamiento de usuarios habilitado, ahora es posible agregar/actualizar usuarios y sus roles en OneLogin y hacer que se aprovisionen inmediatamente en Zabbix.

Por ejemplo, puede crear un nuevo usuario:

Agrégelo a un rol de usuario y a la aplicación que aprovisionará al usuario:

Al guardar el usuario, se aprovisionará en Zabbix. En Application > Users puede comprobar el estado de aprovisionamiento de los usuarios actuales de la aplicación:

Si se aprovisiona correctamente, el usuario podrá verse en la lista de usuarios de Zabbix.