[comment]: # ({2b789eb7-e09cf279})
# 12 Configuración de SAML con Okta

Esta sección proporciona directrices para configurar [Okta](https://okta.com) para habilitar la autenticación SAML 2.0 y el aprovisionamiento de usuarios para Zabbix.

[comment]: # ({/2b789eb7-e09cf279})

[comment]: # ({9295c91d-c8df5f13})
#### 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*.

![](../../../../assets/en/manual/appendix/install/okta_app_create.png){width="600"}

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 proporcionados a continuación y luego
haga clic en *Next*.

![](../../../../assets/en/manual/appendix/install/okta_app_conf.png){width="600"}

-   En **General** agregue:
    -   *Single sign-on URL*:
        `http://<your-zabbix-url>/zabbix/index_sso.php?acs`<br>
        Tenga en cuenta el uso de "http" y no de "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`<br>
        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*:<br>
        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.

-   En **Attribute Statements/Group Attribute Statements** agregue:

![](../../../../assets/en/manual/appendix/install/okta_app_conf2.png){width="600"}

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.

::: noteclassic
 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* 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 pulse "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.

![](../../../../assets/en/manual/appendix/install/okta_app_assign.png)

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

9\. 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.

[comment]: # ({/9295c91d-c8df5f13})

[comment]: # ({940784da-bdad4ea8})
#### Configuración de Zabbix

1\. En Zabbix, vaya a la [configuración de SAML](/manual/web_interface/frontend_sections/users/authentication/saml#setting-up-zabbix) 
y complete las opciones de configuración según las instrucciones de instalación de Okta:

![](../../../../assets/en/manual/appendix/install/okta_zabbix_saml.png){width="600"}

|Zabbix field|Setup field in Okta|Sample value|
|----|----|--|
|*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\. Descargue el certificado proporcionado en las instrucciones de configuración de SAML de Okta
en la carpeta *ui/conf/certs* como idp.crt. 

Asigne permisos 644 ejecutando:

    chmod 644 idp.crt

3\. Si *Assertion Encryption* se ha establecido en "Encrypted" en Okta, la
casilla "Assertions" del parámetro *Encrypt* también debe estar marcada en
Zabbix.

4\. Pulse el botón "Update" para guardar esta configuración.

[comment]: # ({/940784da-bdad4ea8})

[comment]: # ({87d78e73-ff17ddca})
#### 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ñádale `api_scim.php`, es decir:<br>
    `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

![](../../../../assets/en/manual/appendix/install/okta_scim_conn.png){width="600"}

::: noteimportant
Si tiene problemas de autenticación, consulte [Authorization header forwarding](/manual/installation/known_issues#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 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`.

![](../../../../assets/en/manual/appendix/install/okta_add_attr.png)

*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.

![](../../../../assets/en/manual/appendix/install/okta_map_attr.png)

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.

[comment]: # ({/87d78e73-ff17ddca})
