12 Configuración de SAML con OneLogin

Descripción general

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

Configuración de OneLogin

Creando aplicación

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

2. En la interfaz web de OneLogin, navegue hasta Aplicaciones → Aplicaciones.

3. Haga clic en "Agregar aplicación" y busque la aplicación adecuada. Las pautas de esta página se basan en el ejemplo de aplicación SCIM Provisioner con SAML (SCIM v2 Enterprise, SAML completo).

4. Para empezar, es posible que desee personalizar el nombre a mostrar de su aplicación. Es posible que también desee agregar el ícono y los detalles de la aplicación. Después de eso, haga clic en Guardar.

Configuración del aprovisionamiento SSO/SCIM

1. En Configuración -> Detalles de la aplicación, establezca el punto final de inicio de sesión único de Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs como el valor de estos campos:

  • Validador de URL ACS (Consumidor)
  • URL ACS (Consumidor)

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

También es posible utilizar "https". Para que eso funcione con Zabbix, es necesario agregar a conf/zabbix.conf.php la siguiente línea:

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

Deje otras opciones con sus valores predeterminados.

2. En Configuración -> Conexión API, establezca los siguientes valores:

  • URL base de SCIM: https://<zabbix-instance-url>/zabbix/api_scim.php
  • Plantilla SCIM JSON: debe contener todos los atributos personalizados que le gustaría pasar a Zabbix a través de 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 usar diferentes nombres de atributos; sin embargo, es necesario que coincidan con el valor del campo respectivo en la configuración de Zabbix SAML.

Tenga en cuenta que para que funcione el aprovisionamiento de usuarios, OneLogin debe recibir como respuesta un atributo de 'nombre' con 'nombre dado' y 'apellido', incluso si no fue requerido por el proveedor de servicios. Por lo tanto, es necesario especificar esto en el esquema en la parte de configuración de la aplicación.

  • SCIM Bearer Token: introduce un token API de Zabbix con permisos de superadministrador.

Haga clic en Activar para activar la conexión.

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

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

  • Asegúrese de que el 'scimusername' coincida con el valor de inicio de sesión del usuario en OneLogin (por ejemplo, correo electrónico);
  • Marque la opción Incluir en aprovisionamiento de usuarios para el parámetro 'Grupos';
  • 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 agregar un parámetro, asegúrese de marcar las opciones Incluir en aserción SAML e Incluir en aprovisionamiento de usuarios.

  • Agregue un parámetro de 'grupo' 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 Reglas, cree asignaciones de roles de usuario al parámetro Grupos predeterminado.

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 usa como separador cuando envía un atributo con varios roles.

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 Zabbix Campo de configuración en OneLogin Valor de muestra
ID de entidad IdP URL del emisor
(consulte la pestaña SSO de su aplicación en OneLogin)
URL del servicio SSO Punto final SAML 2.0 (HTTP)
(consulte la pestaña SSO de su aplicación en OneLogin)
URL del servicio SLO Punto final de SLO (HTTP)
(consulte la pestaña SSO de su aplicación en OneLogin)
Atributo de nombre de usuario Parámetro personalizado user_email
Atributo de nombre de grupo Parámetro personalizado group
Atributo de nombre de usuario Parámetro personalizado user_name
Atributo de apellido de usuario Parámetro personalizado user_lastname

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

2. Descargue el certificado proporcionado por OneLogin y colóquelo en conf/certs de la instalación del frontend de Zabbix, como idp.crt.

Establezca permisos 644 ejecutando:

chmod 644 idp.crt

Puede acceder a la descarga del certificado en OneLogin en Aplicaciones -> SSO -> haga clic en Ver detalles debajo del certificado actual.

Es posible utilizar un nombre y una ubicación de certificado diferentes. En ese caso, asegúrese de agregar a conf/zabbix.conf.php la siguiente línea:

$SSO['IDP_CERT'] = 'path/to/certname.crt';

Aprovisionamiento de usuarios SCIM

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

Por ejemplo, puede crear un nuevo usuario:

Agréguelo a una función de usuario y a la aplicación que aprovisionará al usuario:

Al guardar al usuario, se aprovisionará en Zabbix. En Aplicación -> Usuarios puede verificar 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.