Configuración de SAML con Okta

Esta sección proporciona directrices 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 SAML, introduzca los valores que se indican a continuación y, a continuación, haga clic en Next.

  • En General añada:

    • Single sign-on URL: http://<your-zabbix-url>/zabbix/index_sso.php?acs
      Tenga en cuenta el uso de "http" y no de "https", para que el parámetro acs no se elimine de 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 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, puede añadirse en Zabbix en la configuración Users > Users.
    • Complete los demás campos según sus preferencias.
  • En Attribute Statements/Group Attribute Statements añada:

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

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

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

Si planea usar una conexión cifrada, genere los certificados de cifrado privado y público y, a continuación, cargue el certificado público en Okta. El formulario de carga del certificado aparece cuando Assertion Encryption está configurado como "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 usarán SAML 2.0 para autenticarse en Zabbix y, a continuación, haga clic en Save and go back.

9. Descargue el certificado IdP. Asigne 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 Configuración de SAML y complete las opciones de configuración según las instrucciones de configuración 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 la asignación 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á establecido en el archivo de configuración del frontend (zabbix.conf.php), puede pegar el texto del certificado o cargar el archivo de 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.

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

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

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://<your-zabbix-url>/zabbix/api_scim.php
  • Unique identifier field for users: email
  • Authentication mode: HTTP header
  • En Authorization, introduzca un token de API válido con derechos de Super admin.

Si experimenta problemas de autenticación, consulte Authorization header forwarding.

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

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

  • Create Users
  • Update User Attributes
  • Deactivate Users

Esto garantizará 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. Complete los valores de Display name, Variable name y 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 añadidos recientemente.

7. Asigne cada atributo añadido.

8. Añada usuarios en la pestaña "Assignments". Antes, los usuarios deben añadirse 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 asignación de grupos de usuarios en la configuración SAML de Zabbix debe coincidir con un grupo especificado aquí. Si no hay ninguna coincidencia, el usuario no podrá crearse en Zabbix.

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