13 Configuración de SAML con Okta

Esta sección proporciona pautas para configurar Okta para habilitar la autenticación SAML 2.0 y el aprovisionamiento de usuarios para Zabbix.

Configuración de Okta

1. Vaya a https://developer.okta.com/signup/ y regístrese/inicie sesión en su cuenta.

2. En la interfaz web de Okta, navegue a Applications → Applications.

3. Haga clic en Create App Integration.

Seleccione "SAML 2.0" como método de inicio de sesión y haga clic en Next.

4. En la configuración general, complete el nombre de la aplicación y haga clic en Next.

5. En la configuración de SAML, introduzca los valores proporcionados a continuación y haga clic en Next.

  • En General agregue:

    • Single sign-on URL: http://<your-zabbix-url>/zabbix/index_sso.php?acs
      Tenga en cuenta el uso de "http" y no "https", para que el parámetro acs no se elimine en la solicitud. La casilla Use this for Recipient URL and Destination URL también debe estar marcada.
    • Audience URI (SP Entity ID): zabbix
      Tenga en cuenta que este valor se utilizará dentro de la aserción SAML como un identificador único del proveedor de servicios (si no coincide, la operación será rechazada). Es posible especificar una URL o cualquier cadena de datos en este campo.
    • Default RelayState:
      Deje este campo en blanco; si se requiere una redirección personalizada, se puede agregar en Zabbix en la configuración Usuarios > Usuarios.
    • Complete los demás campos según sus preferencias.
  • En Attribute Statements/Group Attribute Statements agregue:

Estas declaraciones de atributos se insertan en las aserciones SAML compartidas con Zabbix.

Los nombres de atributos utilizados aquí son ejemplos arbitrarios. Puede utilizar diferentes nombres de atributos, sin embargo, es necesario que coincidan con el valor del campo respectivo en la configuración SAML de Zabbix.

Si desea configurar el inicio de sesión SAML en Zabbix sin aprovisionamiento de usuario JIT, solo se requiere el atributo de correo electrónico.

Si planea utilizar una conexión cifrada, genere los certificados de cifrado privados y públicos, luego cargue el certificado público en Okta. El formulario de carga de certificados aparece cuando Assertion Encryption se establece en "Encrypted" (haga clic en Show Advanced Settings para encontrar este parámetro).

6. En la siguiente pestaña, seleccione "I'm a software vendor. I'd like to integrate my app with Okta" y haga clic en Finish.

7. Navegue a la pestaña "Assignments" de la aplicación recién creada y haga clic en el botón Assign, luego seleccione "Assign to People" en el menú desplegable.

8. En la ventana emergente que aparece, asigne la aplicación a las personas que utilizarán SAML 2.0 para autenticarse con Zabbix y haga clic en Save and go back.

9. Descargue el certificado IdP. Establezca los permisos 644 ejecutando:

chmod 644 idp.crt

10. Navegue a la pestaña "Sign On" y haga clic en el botón View Setup Instructions.

Las instrucciones de configuración se abrirán en una nueva pestaña; mantenga esta pestaña abierta mientras configura Zabbix.

Configuración de Zabbix

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

Campo de Zabbix Campo de configuración en Okta Valor de ejemplo
IdP entity ID Identity Provider Issuer
SSO service URL Identity Provider Single Sign-On URL
Username attribute Attribute name usrEmail
SP entity ID Audience URI zabbix
Group name attribute Attribute name groups
User name attribute Attribute name user_name
User last name attribute Attribute name user_lastname

También es necesario configurar el mapeo de grupos de usuarios y medios.

2. Añada el certificado Base64 proporcionado en las instrucciones de configuración de SAML de Okta.

Si $SSO['CERT_STORAGE'] = 'database' está configurado en 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á configurado en zabbix.conf.php, el certificado debe estar disponible en el sistema de archivos (por defecto en ui/conf/certs o en la ruta configurada en zabbix.conf.php) y el frontend 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 archivo y los certificados se leen desde ui/conf/certs.

3. Si Assertion Encryption se ha configurado como "Encrypted" en Okta, también debe marcarse la casilla "Assertions" del parámetro Encrypt en Zabbix.

4. Pulse el botón Actualizar para guardar estos ajustes.

Aprovisionamiento SCIM

1. Para activar el aprovisionamiento SCIM, vaya a "General" -> "App Settings" de la aplicación en Okta.

Marque la casilla Enable SCIM provisioning. Como resultado, aparecerá una nueva pestaña Provisioning.

2. Vaya a la pestaña "Provisioning" para configurar una conexión SCIM:

  • En SCIM connector base URL especifique la ruta al frontend de Zabbix y añada api_scim.php, es decir:
    https://<su-zabbix-url>/zabbix/api_scim.php
  • Unique identifier field for users: email
  • Authentication mode: HTTP header
  • En Authorization introduzca un token API válido con derechos de Super admin

Si tiene problemas de autenticación, consulte Reenvío de cabecera de autorización.

3. Haga clic en Test Connector Configuration para probar la conexión. Si todo es correcto, se mostrará un mensaje de éxito.

4. En "Provisioning" -> "To App", asegúrese de marcar las siguientes casillas:

  • Create Users
  • Update User Attributes
  • Deactivate Users

Esto asegurará que estos tipos de solicitudes se envíen a Zabbix.

5. Asegúrese de que todos los atributos definidos en SAML estén definidos en SCIM. Puede acceder al editor de perfiles de su aplicación en "Provisioning" -> "To App", haciendo clic en Go to Profile Editor.

Haga clic en Add Attribute. Rellene los valores de Display name, Variable name, External name con el nombre del atributo SAML, por ejemplo, user_name.

External namespace debe ser el mismo que el esquema de usuario: urn:ietf:params:scim:schemas:core:2.0:User

6. Vaya a "Provisioning" -> "To App" -> "Attribute Mappings" de su aplicación. Haga clic en Show Unmapped Attributes en la parte inferior. Aparecerán los atributos recién añadidos.

7. Asigne cada atributo añadido.

8. Añada usuarios en la pestaña "Assignments". Los usuarios deben añadirse previamente en Directory -> People. Todas estas asignaciones se enviarán como solicitudes a Zabbix.

9. Añada grupos en la pestaña "Push Groups". El patrón de mapeo de grupos de usuarios en la configuración SAML de Zabbix debe coincidir con un grupo especificado aquí. Si no hay coincidencia, el usuario no podrá crearse en Zabbix.

La información sobre los miembros del grupo se envía cada vez que se realiza algún cambio.