14 SAML iestatīšana ar OneLogin
Pārskats
Šajā sadaļā ir sniegtas vadlīnijas vienotās pierakstīšanās un lietotāju nodrošināšanas konfigurēšanai Zabbix no OneLogin, izmantojot SAML 2.0 autentifikāciju.
OneLogin konfigurācija
Lietotnes izveide
1. Piesakieties savā OneLogin kontā. Testēšanas nolūkos varat izveidot bezmaksas izstrādātāja kontu pakalpojumā OneLogin.
2. OneLogin tīmekļa saskarnē dodieties uz Applications → Applications.
3. Noklikšķiniet uz "Add App" un meklējiet atbilstošo lietotni. Šajā lapā sniegtās vadlīnijas ir balstītas uz lietotnes SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML) piemēru.
4. Sākumā, iespējams, vēlēsieties pielāgot savas lietotnes attēlojamo nosaukumu. Iespējams, vēlēsieties pievienot arī ikonu un lietotnes informāciju. Pēc tam noklikšķiniet uz Save.
SSO/SCIM nodrošināšanas iestatīšana
1. Sadaļā Configuration -> Application details iestatiet Zabbix vienotās pierakstīšanās galapunktu http://<zabbix-instance-url>/zabbix/index_sso.php?acs kā šo lauku vērtību:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Ņemiet vērā, ka jāizmanto "http", nevis "https", lai pieprasījumā netiktu izgriezts parametrs acs.

Ir iespējams izmantot arī "https".
Lai tas darbotos ar Zabbix, failam conf/zabbix.conf.php nepieciešams pievienot šādu rindu:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Pārējām opcijām atstājiet noklusējuma vērtības.
2. Sadaļā Configuration -> API connection iestatiet šādas vērtības:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: jāietver visi pielāgotie atribūti, kurus vēlaties nodot Zabbix, izmantojot SCIM, piemēram,
user_name,user_lastname,user_emailunuser_mobile:
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "{$parameters.scimusername}",
"name": {
"familyName": "{$user.lastname}",
"givenName": "{$user.firstname}"
},
"user_name": "{$user.firstname}",
"user_lastname": "{$user.lastname}",
"user_mobile": "{$user.phone}",
"user_email": "{$user.email}"
}
Atribūtu nosaukumi ir patvaļīgi. Var izmantot arī citus atribūtu nosaukumus, taču tiem jāsakrīt ar attiecīgā lauka vērtību Zabbix SAML iestatījumos.
Ņemiet vērā, ka, lai lietotāju nodrošināšana darbotos, OneLogin atbildē jāsaņem atribūts 'name' ar 'givenName' un 'familyName', pat ja pakalpojuma sniedzējs to nepieprasa. Tādēļ tas ir jānorāda shēmā lietotnes konfigurācijas daļā.
- SCIM Bearer Token: ievadiet Zabbix API tokenu ar Super admin atļaujām.
Noklikšķiniet uz Enable, lai aktivizētu savienojumu.

3. Lapā Provisioning iespējojiet opciju Provisioning:

4. Lapā Parameters ir noklusējuma parametru saraksts:
- Pārliecinieties, ka 'scimusername' atbilst lietotāja pieteikšanās vērtībai OneLogin (piemēram, e-pasta adresei);
- Parametram 'Groups' atzīmējiet opciju Include in User Provisioning;
- Noklikšķiniet uz "+", lai izveidotu pielāgotos parametrus, kas nepieciešami SAML apgalvojumiem un lietotāju nodrošināšanai, piemēram,
user_name,user_lastname,user_emailunuser_mobile:

Pievienojot parametru, noteikti atzīmējiet gan opciju Include in SAML assertion, gan Include in User Provisioning.
- Pievienojiet parametru 'group', kas atbilst lietotāju lomām OneLogin.
Lietotāju lomas tiks nodotas kā virkne, atdalīta ar semikolu
;. OneLogin lietotāju lomas tiks izmantotas lietotāju grupu izveidei Zabbix:

Pārbaudiet parametru sarakstu:

5. Lapā Rules izveidojiet lietotāju lomu kartējumus noklusējuma parametram Groups.

Varat izmantot regulāro izteiksmi, lai nodotu konkrētas lomas kā grupas.
Lomu nosaukumi nedrīkst saturēt ;, jo OneLogin to izmanto kā atdalītāju, sūtot atribūtu ar vairākām lomām.
6. Lejupielādējiet IdP sertifikātu. Iestatiet tam 644 atļaujas, izpildot:
chmod 644 idp.crt
Zabbix konfigurācija
1. Zabbix lietotāja saskarnē atveriet SAML iestatījumus un aizpildiet konfigurācijas opcijas atbilstoši OneLogin konfigurācijai:

| Zabbix lauks | Iestatīšanas lauks OneLogin | Vērtības piemērs |
|---|---|---|
| IdP entītijas ID | Issuer URL (skatiet savas lietotnes cilni SSO pakalpojumā OneLogin) |
|
| SSO pakalpojuma URL | SAML 2.0 Endpoint (HTTP) (skatiet savas lietotnes cilni SSO pakalpojumā OneLogin) |
|
| SLO pakalpojuma URL | SLO Endpoint (HTTP) (skatiet savas lietotnes cilni SSO pakalpojumā OneLogin) |
|
| Lietotājvārda atribūts | Pielāgots parametrs | user_email |
| Grupas nosaukuma atribūts | Pielāgots parametrs | group |
| Lietotāja vārda atribūts | Pielāgots parametrs | user_name |
| Lietotāja uzvārda atribūts | Pielāgots parametrs | user_lastname |
Nepieciešams arī konfigurēt lietotāju grupu kartēšanu. Mediju kartēšana nav obligāta. Noklikšķiniet uz Update, lai saglabātu šos iestatījumus.
2. Pievienojiet OneLogin 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.
OneLogin sertifikāta lejupielādi varat atrast sadaļā Applications -> SSO -> noklikšķiniet uz View details zem pašreizējā sertifikāta.
3. Nospiediet pogu Update, lai saglabātu šos iestatījumus.
SCIM lietotāju nodrošināšana
Ja lietotāju nodrošināšana ir iespējota, tagad ir iespējams pievienot/atjaunināt lietotājus un viņu lomas OneLogin vidē un panākt, ka tie tiek nekavējoties nodrošināti Zabbix.
Piemēram, varat izveidot jaunu lietotāju:

Pievienojiet to lietotāja lomai un lietotnei, kas nodrošinās lietotāju:

Saglabājot lietotāju, tas tiks nodrošināts Zabbix. Sadaļā Application -> Users varat pārbaudīt pašreizējo lietotnes lietotāju nodrošināšanas statusu:

Ja nodrošināšana ir veiksmīga, lietotājs būs redzams Zabbix lietotāju sarakstā.
