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, introduzca el nombre de la aplicación y haga clic en Next.
5. En la configuración SAML, introduzca los valores indicados 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ámetroacsno 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 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 añadir en Zabbix en la configuración Users > Users. - Complete los demás campos según sus preferencias.
- Single sign-on URL:
-
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 luego 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 con Zabbix y, a continuación, haga clic en Save and go back.
9. Descargue el certificado del IdP. Establezca permisos 644 para él 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 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 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 (de forma predeterminada en ui/conf/certs o en la ruta configurada en zabbix.conf.php) y el frontend no almacenará 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 y los certificados se leen desde ui/conf/certs.
3. Si Assertion Encryption se ha 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.phpal final, 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 privilegios de Super admin

Si tiene 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 éxito.
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 solicitud 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 previamente 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 coincidencia, el usuario no se puede crear en Zabbix.
La información sobre los miembros del grupo se envía cada vez que se realiza algún cambio.