3 SAML

Vista general

L'autenticació 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.

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.

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

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.

Configuració del proveïdor d'identitat

Per treballar amb Zabbix, un proveïdor d'identitat SAML (onelogin.com, auth0.com, 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

Configurant Zabbix

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.

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

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.
La llista de valors admesos la determina el proveïdor d'identitat.

Exemples:
uid
userprincipalname
samaccountname
nom d'usuari
nom d'usuari
urn:oid:0.9.2342.19200300.100.1.1
urn:oid:1.3.6.1.4.1.5923.1.1.1.13
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).
És possible especificar una URL o qualsevol cadena de dades.
Format d'identificador de nom de SP Defineix quin format d'identificador de nom s'ha d'emprar.

Exemples:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
<urn:oasis:names :tc:SAML:2.0:nameid-format:entity>
Sign Marqueu les caselles de selecció per triar les entitats per a les quals s'hauria d'activar la signatura SAML:
Missatges
Assercions
Peticions d'autenticació
Peticions de tancament de sessió
Desconnexió respostes
Xifrar Marqueu les caselles de selecció per seleccionar les entitats per a les quals s'hauria d'activar el xifrat SAML:
ID de nom
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.
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".
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.
Això és necessari per determinar quin grup/rol d'usuaris obtindrà l'usuari subministrat a Zabbix.
Fes clic a Afegeix per afegir una assignació.
El camp patró de grup SAML admet comodins. El nom del grup ha de coincidir amb un grup existent.
Si un usuari de SAML coincideix amb diversos grups d'usuaris de Zabbix, l'usuari esdevé membre de tots ells.
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:

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://<your-zabbix-url>/zabbix/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.

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']

Zabbix empra la biblioteca kit d'eines SAML PHP de OneLogin (versió 3.4.1). L'estructura de la secció $SSO['SETTINGS'] hauria de ser similar a l'estructura emprada per la biblioteca. Per a la descripció de les opcions de configuració, veieu la documentació de la biblioteca 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:

 $SSO_SETTINGS=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]

Exemple de configuració:

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