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

Lietojumprogrammas 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 lietojumprogrammas nosaukumu un atlasiet opciju Integrate any other application.... Pēc tam noklikšķiniet uz Create.

Vienotās pierakstīšanās iestatīšana

1. Lietojumprogrammas lapā atveriet Set up single sign on un noklikšķiniet uz 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 vienotā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, failam conf/zabbix.conf.php 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 patvaļīgi. Var izmantot dažādus atribūtu nosaukumus, tomēr ir nepieciešams, lai tie atbilstu attiecīgā lauka vērtībai Zabbix SAML iestatījumos.

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

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

Šajā prasībā ir svarīgi, lai uz Zabbix tiktu nodoti grupu nosaukumi (nevis grupu ID), izmantojot atlasīto Source attribute. 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 saskarne instalācijas mapē conf/certs.

Iestatiet tam 644 atļaujas, izpildot:

chmod 644 entra.cer

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

Zabbix konfigurācija

1. Zabbix vidē atveriet SAML iestatījumus un aizpildiet konfigurācijas opcijas atbilstoši Entra ID konfigurācijai:

Zabbix lauks Iestatīšanas lauks Entra ID Piemēra vērtība
IdP entītijas ID Microsoft Entra identifikators
SSO pakalpojuma URL Pieteikšanās URL
SLO pakalpojuma URL Atslēgšanās URL
SP entītijas ID Identifikators (Entity ID)
Lietotājvārda atribūts Pielāgots atribūts (claim) user_email
Grupas nosaukuma atribūts Pielāgots atribūts (claim) groups
Lietotāja vārda atribūts Pielāgots atribūts (claim) user_name
Lietotāja uzvārda atribūts Pielāgots atribūts (claim) user_lastname

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

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

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

Nepieciešams arī konfigurēt lietotāju grupu kartēšanu. Mediju kartēšana nav obligāta.

3. Nospiediet pogu Update, lai saglabātu šos iestatījumus.

SCIM lietotāju nodrošināšana

1. 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 iestatiet šādu vērtību: https://<path-to-zabbix-ui>/api_scim.php
  • Laukā Secret token ievadiet Zabbix API tokenu ar Super admin atļaujām.
  • Noklikšķiniet uz Test connection, lai pārbaudītu, vai savienojums ir izveidots.

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

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

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

Saglabājiet sarakstu.

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

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

4. Kā priekšnosacījums lietotāju nodrošināšanai Zabbix, Entra ID ir jābūt konfigurētiem lietotājiem un grupām.

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

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

6. Atveriet savas lietotnes izvēlni Provisioning un noklikšķiniet uz Start provisioning, lai nodrošinātu lietotājus Zabbix.

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

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