[comment]: # ({840f7138-70beca7a})
# 3 SAML

[comment]: # ({/840f7138-70beca7a})

[comment]: # ({15eb0913-455714b6})
#### Vista general

L'[autenticació](/manual/web_interface/frontend_sections/users/authentication) SAML 2.0 es pot emprar per iniciar la sessió a Zabbix.

Si només es configura l'inici de sessió SAML, l'usuari també ha d'existir a Zabbix, però no s'emprarà el seu mot de pas de Zabbix. Si l'autenticació té èxit, Zabbix farà coincidir un nom d'usuari local amb l'atribut de nom d'usuari retornat per SAML.

[comment]: # ({/15eb0913-455714b6})

[comment]: # ({720063d0-85c848c9})

#### Aprovisionament d'usuaris

És possible configurar l'**aprovisionament d'usuaris** JIT (just a temps) per als usuaris de SAML. En aquest cas, no és necessari que ja existeixi un usuari a Zabbix. El compte d'usuari es pot crear quan l'usuari inicia sessió a Zabbix per primer cop.

:::noteimportant
Si l'aprovisionament JIT és habilitat, s'ha d'especificar un grup d'usuaris per als usuaris desaprovisionats a la pestanya *Autenticació*.
:::

A més de l'aprovisionament JIT, també és possible habilitar i configurar l'aprovisionament SCIM (Sistema per a la gestió d'identitats entre dominis) - gestió de comptes d'usuari *continuar* per a aquells usuaris que s'han creat mitjançant l'aprovisionament d'usuaris. El subministrament SCIM requereix un [token API](/manual/web_interface/frontend_sections/users/api_tokens) de Zabbix (amb permisos de superadministrador) per autenticar-se a Zabbix.

Per exemple, si un usuari es mou d'un grup SAML a un altre, l'usuari també es mourà d'un grup a un altre a Zabbix; si s'esborra un usuari d'un grup SAML, l'usuari també s'esborrarà del grup a Zabbix i, si no pertany a cap altre grup, s'afegirà al grup d'usuaris per als usuaris desprovisionats.

Si SCIM és habilitat i configurat, s'aprovisionarà un usuari SAML en el moment que l'usuari iniciï sessió a Zabbix i s'actualitzarà contínuament en funció dels canvis a SAML. Els usuaris SAML existents no s'aprovisionaran i només s'actualitzaran els usuaris donats. Tingueu en compte que només s'afegiran suports vàlids a un usuari quan l'usuari s'aprovisioni o s'actualitzi.

Si SCIM no és habilitat, s'aprovisionarà un usuari SAML (i s'actualitzarà posteriorment) en el moment que l'usuari iniciï sessió a Zabbix.

::: noteclassic
  Si l'autenticació SAML és activada, els usuaris podran triar entre iniciar sessió localment o mitjançant l'inici de sessió únic SAML. Si s'empra el subministrament JIT, només és possible l'inici de sessió únic.
:::

[comment]: # ({/720063d0-85c848c9})

[comment]: # ({7be842a1-4cca45cd})
#### Configuració del proveïdor d'identitat

Per treballar amb Zabbix, un proveïdor d'identitat SAML ([onelogin.com](https://onelogin.com), [auth0.com](https://auth0.com), [okta.com](https://okta.com), etc.) s'hauria de configurar de la següent manera:

- *L'URL del consumidor de l'afirmació* s'ha d'establir a `<path_to_zabbix_ui>/index_sso.php?acs`
- *L'URL de sortida única* s'ha d'establir a `<path_to_zabbix_ui>/index_sso.php?sls`

Exemple `<path_to_zabbix_ui>`: `https://exemple.cat/zabbix/ui`, `http://another.exemple.cat/zabbix`, `http://<any_public_ip_address>/zabbix`

[comment]: # ({/7be842a1-4cca45cd})

[comment]: # ({ace163ae-274513e2})
#### Configurant Zabbix

::: noteimportant
Cal instal·lar php-openssl si voleu emprar l'autenticació SAML a la interfície.
:::

Per emprar l'autenticació SAML, Zabbix s'ha de configurar de la manera següent:

1\. La clau privada i el certificat s'han d'emmagatzemar a *ui/conf/certs*/, tret que es proporcionin camins personalitzats a [zabbix.conf.php](#advanced_settings).

De manera predeterminada, Zabbix buscarà a les ubicacions següents:

- ui/conf/certs/sp.key - Fitxer de clau privada SP
- ui/conf/certs/sp.crt - Fitxer de certificat SP
- ui/conf/certs/idp.crt - Fitxer de certificat IDP

2\. Tots els paràmetres més importants es poden configurar a la interfície de Zabbix. Tanmateix, és possible especificar paràmetres addicionals al [fitxer de configuració](#advanced_settings).

![](../../../../../../assets/en/manual/web_interface/frontend_sections/users/auth_saml.png)

Paràmetres de configuració, disponibles a la interfície de Zabbix:

|Paràmetre|Descripció|
|--|---------|
|*Activa l'autenticació SAML*|Marqueu la casella de selecció per habilitar l'autenticació SAML.|
|*Activa el subministrament JIT*|Marqueu la casella de selecció per habilitar el subministrament d'usuaris JIT.|
|*ID d'entitat IDP*|L'identificador únic de l'entitat dins del proveïdor d'identitat SAML.|
|*URL del servei SSO*|L'URL dels usuaris es redirigirà quan iniciïn sessió.|
|*URL del servei SLO*|L'URL dels usuaris es redirigirà quan tanquin la sessió. Si es deixa buit, no s'emprarà pas el servei SLO.|
|*Atribut nom d'usuari*|Atribut SAML que s'emprarà com a nom d'usuari quan inicieu sessió a Zabbix.<br>La llista de valors admesos la determina el proveïdor d'identitat.<br><br>Exemples:<br>uid<br>userprincipalname<br>samaccountname<br>nom d'usuari<br>nom d'usuari<br><urn:oid:0.9.2342.19200300.100.1.1><br><urn:oid:1.3.6.1.4.1.5923.1.1.1.13> <br><urn:oid:0.9.2342.19200300.100.1.44>|
|*ID d'entitat SP*|L'identificador únic del proveïdor de serveis (si no coincideix, l'operació serà rebutjada).<br>És possible especificar una URL o qualsevol cadena de dades.|
|*SP Format ID de nom*|Demana un format d'ID de nom en concret a la resposta.<br><br>Exemples:<br><urn:oasis:names:tc:SAML:2.0:nameid-format:persistent><br><br><br>oasis:names:tc:SAML:2.0:nameid-format:unspecified<br><br><br>oasis:names:tc:SAML:2.0:nameid-format:unspecified>|
|*Sign*|Marqueu les caselles de selecció per triar les entitats per a les quals s'hauria d'activar la signatura SAML:<br>*Missatges*<br>*Assercions*<br>*Peticions d'autenticació*<br>*Peticions de tancament de sessió*<br>*Desconnexió respostes*|
|*Xifrar*|Marqueu les caselles de selecció per seleccionar les entitats per a les quals s'hauria d'activar el xifrat SAML:<br>*ID de nom*<br>*Assercions*|
|*Inici de sessió que distingeix entre majúscules i minúscules*|Marqueu la casella de selecció per habilitar l'inici de sessió que distingeix entre majúscules i minúscules (desactivat de manera predeterminada) per als noms d'usuari.<br>Exemple: desactiveu l'inici de sessió que distingeix entre majúscules i minúscules i inicieu sessió, per exemple, amb l'usuari "ADMINISTRADOR", encara que l'usuari de Zabbix sigui "Administrador".<br>*Tingueu en compte* que amb l'inici de sessió que distingeix entre majúscules i minúscules desactivat, l'inici de sessió es denegarà si hi ha diversos usuaris a Base de dades Zabbix amb noms d'usuari similars (per exemple, Admin, admin).|
|*Configurar el subministrament JIT*|Marqueu aquesta casella de selecció per mostrar les opcions relacionades amb el subministrament d'usuaris JIT.|
|*Atribut del nom del grup*|Especifiqueu l'atribut del nom del grup per al subministrament d'usuaris JIT.|
|*Atribut del nom d'usuari*|Especifiqueu l'atribut del nom d'usuari per al subministrament d'usuaris JIT.|
|*Atribut del cognom de l'usuari*|Especifiqueu l'atribut del cognom de l'usuari per al subministrament d'usuaris JIT.|
|*Mapatge de grups d'usuaris*|Mapeja un patró de grup d'usuaris SAML al grup d'usuaris de Zabbix i al rol d'usuari.<br>Això és necessari per determinar quin grup/rol d'usuaris obtindrà l'usuari subministrat a Zabbix.<br>Fes clic a *Afegeix* per afegir una assignació.<br>El camp *patró de grup SAML* admet comodins. El nom del grup ha de coincidir amb un grup existent.<br>Si un usuari de SAML coincideix amb diversos grups d'usuaris de Zabbix, l'usuari esdevé membre de tots ells.<br>Si un usuari coincideix amb diversos rols d'usuari de Zabbix, l'usuari obtindrà el màxim nivell de permís entre ells.|
|*Mapatge de tipus de suport*|Mapeja els atributs de suports SAML de l'usuari (per exemple, correu electrònic) als suports d'usuari de Zabbix per enviar notificacions.|
|*Activa l'aprovisionament de SCIM*|Marqueu aquesta casella de selecció per habilitar l'aprovisionament de SCIM 2.0.|

Veieu exemples de configuració de proveïdors d'identitat SAML per iniciar la sessió i subministrar usuaris a Zabbix amb:

- [Microsoft Azure AD](/manual/appendix/install/azure_ad)
- [Okta](/manual/appendix/install/okta)
- [Onelogin](/manual/appendix/install/onelogin)

[comment]: # ({/ace163ae-274513e2})

[comment]: # ({8ba316c1-d739be65})

#### Notes per l'aprovisionament SCIM

Per a l'aprovisionament SCIM, especifiqueu el camí a la interfície Zabbix i afegiu-hi api_scim.php, al costat del proveïdor d'identitat, és a dir:

     https://<ruta-al-zabbix-ui>/api_scim.php

Els atributs d'usuari que s'empren a Zabbix (nom d'usuari, nom d'usuari, cognom de l'usuari i atributs multimèdia) s'han d'afegir com a atributs personalitzats i, si cal, l'espai de noms extern hauria de ser el mateix que l'esquema d'usuari: `urn:ietf:params:scim: schemas:core:2.0:User`.

[comment]: # ({/8ba316c1-d739be65})

[comment]: # ({76f3227b-2c636ca1})

#### Configuració avançada

Es poden configurar paràmetres SAML addicionals al fitxer de configuració de la interfície de Zabbix (*zabbix.conf.php*):

- $SSO\['SP\_KEY'\] = '<camí al fitxer de clau privada SP>';
- $SSO\['SP\_CERT'\] = '<camí al fitxer de certificat SP>';
- $SSO\['IDP\_CERT'\] = '<camí al fitxer de certificat IDP>';
- $SSO\['SETTINGS'\]

::: noteclassic
L'estructura de la secció $SSO\['SETTINGS'\] hauria de ser similar a l'estructura emprada per la biblioteca *SAML PHP Toolkit* ([proporcionada](/manual/installation/requirements#frontend) per Zabbix).
https://github.com/SAML-Toolkits/php-saml?tab=readme-ov-file#how-it-works).
Per a la descripció de les opcions de configuració, veieu la [documentació](https://github.com/SAML-Toolkits/php-saml?tab=readme-ov-file#how-it-works) oficial.

:::

Només es poden definir les opcions següents com a part de $SSO\['SETTINGS'\]:

-   *strict*
-   *baseurl*
-   *compress*
-   *contactPerson*
-   *organization*
- *sp* (només les opcions especificades en aquesta llista)
     - *attributeConsumingService*
     - *x509certNew*
- *idp* (només les opcions especificades en aquesta llista)
     - *singleLogoutService* (només una opció)
        -   *responseUrl*
    -   *certFingerprint*
    -   *certFingerprintAlgorithm*
    -   *x509certMulti*
- *security* (només les opcions especificades en aquesta llista)
    -   *signMetadata*
    -   *wantNameId*
    -   *requestedAuthnContext*
    -   *requestedAuthnContextComparison*
    -   *wantXMLValidation*
    -   *relaxDestinationValidation*
    -   *destinationStrictlyMatches*
    -   *rejectUnsolicitedResponsesWithInResponseTo*
    -   *signatureAlgorithm*
    -   *digestAlgorithm*
    -   *lowercaseUrlencoding*

Totes les altres opcions seran extretes de la base de dades i no es poden anul·lar. L'opció *debug* serà ignorada.

A més, si la interfície d'usuari de Zabbix és darrere d'un proxy o d'un equilibrador de càrrega, es pot emprar l'opció personalitzada *use\_proxy\_headers*:

- *fals* (per defecte) - ignora l'opció;
- *cert* - empreu les capçaleres HTTP X-Forwarded-\* per crear l'URL base.
  
Si empreu un equilibrador de càrrega per connectar-vos a la instància de Zabbix, on l'equilibrador de càrrega empra TLS/SSL i Zabbix no, heu d'indicar els paràmetres 'baseurl', 'strict' i 'use_proxy_headers' de la manera següent:

```php
$SSO['SETTINGS'] = [
    'strict' => false,
    'baseurl' => 'https://zabbix.example.com/zabbix/',
    'use_proxy_headers' => true
];
```


**Exemple de configuració:**

```php
$SSO['SETTINGS'] = [
    'security' => [
        'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
        'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
        // ...
    ],
    // ...
];
```

[comment]: # ({/76f3227b-2c636ca1})

[comment]: # ({32ef8a47-037df9d8})

##### Configuració de la interfície amb Kerberos/ADFS

El fitxer de configuració de la interfície de Zabbix (*zabbix.conf.php*) es pot utilitzar per configurar SSO amb autenticació Kerberos i ADFS:

```php
$SSO['SETTINGS'] = [
    'security' => [
        'requestedAuthnContext' => [
            'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
        ],
        'requestedAuthnContextComparison' => 'exact'
    ]
]; 
```

En aquest cas, al camp de configuració de SAML *ID de nom d'SP* es defineix:

    urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

[comment]: # ({/32ef8a47-037df9d8})
