12 SAML iestatīšana ar Microsoft Entra ID

Pārskats

Šajā sadaļā ir sniegtas vadlīnijas vienotās pierakstīšanās un lietotāju nodrošināšanas konfigurēšanai Zabbix no Microsoft Entra ID (iepriekš Microsoft Azure Active Directory), izmantojot SAML 2.0 autentifikāciju.

Microsoft Entra ID konfigurācija

Lietotnes izveide

1. Piesakieties Microsoft Entra administrēšanas centrā vietnē Microsoft Entra ID. Testēšanas nolūkos varat izveidot bezmaksas izmēģinājuma kontu Microsoft Entra ID.

2. Microsoft Entra administrēšanas centrā atlasiet Applications -> Enterprise applications -> New application -> Create your own application.

3. Pievienojiet savas lietotnes nosaukumu un atlasiet opciju Integrate any other application.... Pēc tam noklikšķiniet uz Create.

Vienreizējās pierakstīšanās iestatīšana

1. Savā lietotnes lapā dodieties uz Set up single sign on un noklikšķiniet Get started. Pēc tam atlasiet SAML.

2. Rediģējiet Basic SAML Configuration:

  • Laukā Identifier (Entity ID) iestatiet unikālu nosaukumu, lai identificētu savu lietotni Microsoft Entra ID, piemēram, zabbix;
  • Laukā Reply URL (Assertion Consumer Service URL) iestatiet Zabbix vienreizējās pierakstīšanās galapunktu: https://<path-to-zabbix-ui>/index_sso.php?acs:

Ņemiet vērā, ka ir nepieciešams "https". Lai tas darbotos ar Zabbix, conf/zabbix.conf.php failā ir jāpievieno šāda rinda:

$SSO['SETTINGS'] = ['use_proxy_headers' => true];

3. Rediģējiet Attributes & Claims. Jums jāpievieno visi atribūti, kurus vēlaties nodot Zabbix (user_name, user_lastname, user_email, user_mobile, groups).

Atribūtu nosaukumi ir brīvi izvēlami. Var izmantot dažādus atribūtu nosaukumus, tomēr tiem ir jāsakrīt ar attiecīgā lauka vērtību Zabbix SAML iestatījumos.

  • Noklikšķiniet Add new claim, lai pievienotu atribūtu:

  • Noklikšķiniet Add a group claim, lai pievienotu atribūtu grupu nodošanai Zabbix:

Šajā claim ir svarīgi, lai uz Zabbix ar izvēlēto Source attribute tiktu nodoti grupu nosaukumi, nevis grupu ID. Pretējā gadījumā JIT lietotāju nodrošināšana nedarbosies pareizi.

4. Sadaļā SAML Certificates lejupielādējiet Entra ID nodrošināto Base64 sertifikātu un ievietojiet to Zabbix lietotāja saskarnes instalācijas conf/certs direktorijā.

Piešķiriet tam 644 atļaujas, izpildot:

chmod 644 entra.cer

5. Izmantojiet vērtības no Set up <your app name> Entra ID, lai konfigurētu Zabbix SAML autentifikāciju (skatiet nākamo sadaļu):

Zabbix konfigurācija

1. Zabbix lietotāja saskarnē atveriet SAML iestatījumus un aizpildiet konfigurācijas opcijas, pamatojoties uz Entra ID konfigurāciju:

Zabbix lauks Iestatīšanas lauks Entra ID Parauga vērtība
IdP entity ID Microsoft Entra identifier
SSO service URL Login URL
SLO service URL Logout URL
SP entity ID Identifier (Entity ID)
Username attribute Custom attribute (claim) user_email
Group name attribute Custom attribute (claim) groups
User name attribute Custom attribute (claim) user_name
User last name attribute Custom attribute (claim) user_lastname

2. Pievienojiet Entra ID nodrošināto Base64 sertifikātu.

Ja zabbix.conf.php ir iestatīts $SSO['CERT_STORAGE'] = 'database', SAML konfigurācijas laikā lietotāja saskarnē varat ielīmēt sertifikāta tekstu vai augšupielādēt sertifikāta failu — failus failu sistēmā nav nepieciešams glabāt.

Ja zabbix.conf.php ir iestatīts $SSO['CERT_STORAGE'] = 'file', sertifikātam jābūt pieejamam failu sistēmā (pēc noklusējuma ui/conf/certs vai zabbix.conf.php konfigurētajā ceļā), un lietotāja saskarne sertifikātus datubāzē neglabās. Ņemiet vērā, ka, ja $SSO['CERT_STORAGE'] nav iestatīts vai ir komentēts, tiek pieņemta failu glabāšana un sertifikāti tiek nolasīti no ui/conf/certs.

Ir arī jāiestata lietotāju grupu kartēšana. Mediju kartēšana nav obligāta.

3. Noklikšķiniet uz pogas Update, lai saglabātu šos iestatījumus.

SCIM lietotāju nodrošināšana

1. Savā Entra ID lietotnes lapā galvenajā izvēlnē atveriet lapu Provisioning. Noklikšķiniet uz Get started un pēc tam atlasiet automātiskās nodrošināšanas režīmu:

  • Laukā Tenant URL norādiet šādu vērtību: https://<path-to-zabbix-ui>/api_scim.php
  • Laukā Secret token ievadiet Zabbix API tokenu ar Super admin tiesībām.
  • Noklikšķiniet uz Test connection, lai pārbaudītu, vai savienojums ir izveidots.

2. Tagad varat pievienot visus atribūtus, kas tiks nodoti ar SCIM uz Zabbix. Lai to izdarītu, noklikšķiniet uz Mappings un pēc tam uz Provision Microsoft Entra ID Users.

Atribūtu kartējuma saraksta apakšā iespējojiet Show advanced options un pēc tam noklikšķiniet uz Edit attribute list for customappsso.

Atribūtu saraksta apakšā pievienojiet savus atribūtus ar tipu 'String':

Saglabājiet sarakstu.

3. Tagad varat pievienot kartējumus pievienotajiem atribūtiem. Atribūtu kartējuma saraksta apakšā noklikšķiniet uz Add New Mapping un izveidojiet kartējumus, kā parādīts tālāk:

Kad visi kartējumi ir pievienoti, saglabājiet kartējumu sarakstu.

4. Kā priekšnoteikums lietotāju nodrošināšanai Zabbix, jums Entra ID ir jākonfigurē lietotāji un grupas.

Lai to izdarītu, dodieties uz Microsoft Entra admin center un pēc tam pievienojiet lietotājus/grupas attiecīgajās lapās Users un Groups.

5. Kad lietotāji un grupas ir izveidoti Entra ID, varat doties uz savas lietotnes izvēlni Users and groups un pievienot tos lietotnei.

6. Dodieties uz savas lietotnes izvēlni Provisioning un noklikšķiniet uz Start provisioning, lai lietotāji tiktu nodrošināti Zabbix.

Ņemiet vērā, ka Entra ID lietotāju PATCH pieprasījums neatbalsta izmaiņas vidē.

Autentifikācijas pieprasījuma parakstīšana

Ir iespējams konfigurēt Entra ID, lai validētu parakstu parakstītiem autentifikācijas pieprasījumiem.

Lai tas darbotos, izveidojiet publisko/privāto atslēgu pāri:

openssl req -x509 -newkey rsa:4096 -keyout /usr/share/zabbix/conf/certs/request-sign.key -out /usr/share/zabbix/conf/certs/request-sign.pem -sha256 -days 1825 -nodes

Piešķiriet atļaujas:

chown apache /usr/share/zabbix/conf/certs/request-sign.key 
chmod 400 /usr/share/zabbix/conf/certs/request-sign.key

Atjauniniet Zabbix lietotāja saskarne konfigurāciju, pievienojot:

$SSO['SP_KEY'] = 'conf/certs/request-sign.key';
$SSO['SP_CERT'] = 'conf/certs/request-sign.crt';

Problēmu novēršana

Autentifikācijas problēmas var rasties ar MicroSoft Edge pārlūkprogrammām, ja lietotājs, mēģinot pieteikties Zabbix, izmantojot SAML, jau ir pieteicies ar MicroSoft Edge profilu. Kā šādas problēmas pazīme lietotājs var spēt pieteikties Zabbix, izmantojot MicroSoft Edge privātajā režīmā.

Lai šajā gadījumā izvairītos no autentifikācijas problēmām, var būt nepieciešams iestatīt requestedAuthnContext uz "false" Zabbix lietotāja saskarnes konfigurācijas failā (zabbix.conf.php).

$SSO['SETTINGS'] = [
    'security' => [
        'requestedAuthnContext' => false
    ]
];