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.

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

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

2. Rediģējiet Basic SAML Configuration:

  • Sadaļā Identifier (Entity ID) iestatiet unikālu nosaukumu, lai identificētu savu lietotni Microsoft Entra ID, piemēram, zabbix;
  • Sadaļā 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 to izmantotu ar Zabbix, pievienojiet tālāk norādīto rindu lietotāja saskarnes konfigurācijas failam:

$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 citus atribūtu nosaukumus, tomēr tiem ir jāatbilst attiecīgajai 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ā pieprasījumā ir svarīgi, lai atlasītais Source attribute nodotu Zabbix grupu nosaukumus, 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 direktorijā conf/certs (atrašanās vieta var atšķirties atkarībā no Zabbix instalācijas operētājsistēmas un avota).

Iestatiet tam 644 atļaujas, izpildot:

chmod 644 entra.cer

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

Zabbix konfigurācija

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

Zabbix lauks Iestatīšanas lauks programmā Entra ID Piemēra vērtība
IdP entītijas ID Microsoft Entra identifikators
SSO pakalpojuma URL Pieteikšanās URL
SLO pakalpojuma URL Izrakstīšanās URL
SP entītijas ID Identifikators (entītijas 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 lietotāja saskarnes konfigurācijas failā (zabbix.conf.php) ir iestatīts $SSO['CERT_STORAGE'] = 'database', SAML konfigurēšanas laikā varat ielīmēt sertifikāta tekstu vai augšupielādēt sertifikāta failu lietotāja saskarnē — failu sistēmā nav nepieciešami nekādi faili.

Ja konfigurācijas 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 konfigurācijas failā norādītajā ceļā), un lietotāja saskarne nesaglabās sertifikātus datubāzē. Ņemiet vērā: ja $SSO['CERT_STORAGE'] nav iestatīts vai ir komentēts, tiek pieņemta glabāšana failā un sertifikāti tiek nolasīti no ui/conf/certs.

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

3. Noklikšķiniet uz pogas Atjaunināt, 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ījumu parakstīšana

Entra ID var konfigurēt, lai validētu parakstīto autentifikācijas pieprasījumu parakstu.

Lai tas darbotos, izveidojiet publiskās un privātās atslēgas:

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 saskarnes 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 pārlūkprogrammā Microsoft Edge, ja lietotājs, mēģinot pieteikties Zabbix, izmantojot SAML, jau ir pieteicies ar Microsoft Edge profilu. Par šādu problēmu var liecināt tas, ka lietotājs var pieteikties Zabbix, izmantojot Microsoft Edge privātajā režīmā.

Lai šādā gadījumā izvairītos no autentifikācijas problēmām, Zabbix lietotāja saskarnes konfigurācijas failā var būt nepieciešams iestatīt requestedAuthnContext vērtību uz false.

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