SAML 2.0 authentication може се користити за пријаву на Zabbix.
Ако је конфигурисано само SAML пријављивање, тада корисник такође мора постојати у Zabbix-у, међутим, његова Zabbix лозинка се неће користити. Ако је аутентификација успешна, онда ће Zabbix ускладити локално корисничко име са атрибутом корисничког имена који враћа SAML.
Могуће је конфигурисати JIT (just-in-time) доделу корисника за SAML кориснике. У овом случају, није потребно да корисник већ постоји у Zabbix-у. Кориснички налог се може креирати када се корисник први пут пријављује на Zabbix.
Ако је омогућавање JIT-а, корисничка група за депровизиониране кориснике мора бити наведена на картици Aутентификација.
Поред JIT обезбеђивања, такође је могуће омогућити и конфигурисати SCIM (Систем за управљање идентитетима у више домена) обезбеђивање - континуирано управљање корисничким налогом за оне кориснике који су креирани доделом корисника. SCIM обезбеђивање захтева Zabbix API token (са дозволама Супер администратора) за аутентификацију у Zabbix.
На пример, ако је корисник премештен из једне SAML групе у другу, корисник ће такође бити премештен из једне групе у другу у Zabbix-у; ако је корисник уклоњен из SAML групе, корисник ће такође бити уклоњен из групе у Zabbix-у, ако не припада ниједној другој групи, биће додато у корисничку групу за депровизионе кориснике.
Ако је SCIM омогућен и конфигурисан, SAML корисник ће бити обезбеђен у тренутку када се корисник пријави на Zabbix и континуирано се ажурира на основу промена у SAML-у. Већ постојећи SAML корисници неће бити обезбеђени, већ ће бити ажурирани само обезбеђени корисници. Имајте на уму да ће само важећи медији бити додати кориснику када се корисник обезбеди или ажурира.
Ако SCIM није омогућен, SAML корисник ће бити обезбеђен (и касније ажуриран) у тренутку када се корисник пријави на Zabbix.
Ако је омогућена SAML аутентификација, корисници ће моћи да бирају између пријављивања локално или путем SAML јединствене пријаве. Ако се користи JIT обезбеђивање, онда је могућа само једнократна пријава.
Да би радио са Zabbix-ом, SAML добављач идентитета (onelogin.com, auth0.com, okta.com, итд.) треба да се конфигурише на следећи начин:
<path_to_zabbix_ui>/index_sso.php?acs
<path_to_zabbix_ui>/index_sso.php?sls
<path_to_zabbix_ui>
примери: https://example.com/zabbix/ui
, http://another.example.com/zabbix
, http://<any_public_ip_address>/zabbix
Потребно је инсталирати php-openssl ако желите да користите SAML аутентификацију на корисничком интерфејсу.
Да бисте користили SAML аутентификацију, Zabbix би требало да буде конфигурисан на следећи начин:
1. Приватни кључ и сертификат треба да се чувају у ui/conf/certs/, осим ако нису наведене прилагођене путање zabbix.conf.php.
Подразумевано, Zabbix ће потражити на следећим локацијама:
2. Сва најважнија подешавања могу се конфигурисати у Zabbix корисничком интерфејсу. Међутим, могуће је навести додатна подешавања у configuration file.
Параметри конфигурације, доступни у Zabbix корисничком интерфејсу:
Parameter | Description |
---|---|
Enable SAML authentication | Означите поље за потврду да бисте омогућили SAML аутентификацију. |
Enable JIT provisioning | Означите поље за потврду да бисте омогућили доделу JIT корисника. |
IDP entity ID | Јединствени идентификатор ентитета унутар SAML провајдера идентитета. |
SSO service URL | URL на који ће корисници бити преусмерени када се пријављују. |
SLO service URL | URL на који ће корисници бити преусмерени када се одјаве. Ако оставите празно, SLO сервис се неће користити. |
Username attribute | SAML атрибут који ће се користити као корисничко име приликом пријављивања на Zabbix. Листа подржаних вредности је одређена од стране добављача идентитета<br Примери: uid userprincipalname samaccountname username userusername 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 |
SP entity ID | Јединствени идентификатор сервисног провајдера (ако се не подудара, операција ће бити одбијена). Могуће је навести URL или било који низ података. |
SP name ID format | Дефинише који формат идентификатора имена треба да се користи. Примери: 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 | Означите поља за потврду да бисте изабрали ентитете за које треба омогућити SAML потпис: Messages Assertions AuthN requests Logout requests Logout responses |
Encrypt | Означите поља за потврду да бисте изабрали ентитете за које треба омогућити SAML шифровање: Name ID Assertions |
Case-sensitive login | Означите поље за потврду да бисте омогућили пријављивање осетљиво на велика и мала слова (подразумевано онемогућено) за корисничка имена. Нпр. онемогућите пријављивање осетљиво на велика и мала слова и пријавите се са, на пример, 'ADMIN' корисником чак и ако је Zabbix корисник 'Admin'. Имајте на уму да када је пријављивање осетљиво на велика и мала слова онемогућено, пријављивање ће бити одбијено ако постоји више корисника у Zabbix база података са сличним корисничким именима (нпр. Admin, admin). |
Configure JIT provisioning | Означите ово поље за потврду да бисте приказали опције које се односе на доделу JIT корисника. |
Group name attribute | Наведите атрибут имена групе за доделу JIT корисника. |
User name attribut | Наведите атрибут корисничког имена за доделу JIT корисника. |
User last name attribute | Одредите атрибут презимена корисника за доделу JIT корисника. |
User group mapping | Мапирајте образац SAML корисничке групе у Zabbix корисничку групу и улогу корисника. Ово је потребно да би се одредило коју ће корисничку групу/улогу добити корисник у Zabbix-у. Кликните на Додај да додате мапирање. Поље SAML групни образац подржава џокер знакове. Име групе мора да одговара постојећој групи. Ако SAML корисник одговара неколико Zabbix корисничких група, корисник постаје члан свих њих. Ако корисник одговара неколико Zabbix корисничких улога, корисник ће добити највећу ниво дозволе међу њима. |
Media type mapping | Мапирајте корисникове SAML медијске атрибуте (нпр. е-пошта) на Zabbix корисничке медије за слање обавештења. |
Enable SCIM provisioning | Означите ово поље за потврду да бисте омогућили доделу SCIM 2.0. |
Погледајте примере конфигурисања добављача SAML идентитета за пријављивање и обезбеђивање корисника у Zabbix помоћу:
За обезбеђивање SCIM-а наведите путању до Zabbix корисничког интерфејса и додајте му api_scim.php, на страни добављача идентитета, тј.:
https://<path-to-zabbix-ui>/api_scim.php
Корисничке атрибуте који се користе у Zabbix-у (корисничко име, име корисника, презиме корисника и атрибути медија) треба додати као прилагођене атрибуте и, ако је потребно, спољни простор имена треба да буде исти као корисничка шема: urn:ietf:params:scim:schemas:core:2.0:User
.
Додатни SAML параметри се могу конфигурисати у Zabbix корисничком интерфејсу конфигурационом фајлу (zabbix.conf.php):
Zabbix користи OneLogin's SAML PHP Toolkit библиотеку (верзија 3.4.1). Структура одељка $SSO['SETTINGS'] треба да буде слична структури коју користи библиотека. За опис опције конфигурације, погледајте званичну библиотеку documentation.
Само следеће опције могу да се подесе као део $SSO['SETTINGS']:
Све остале опције ће бити преузете из базе података и не могу бити надјачане. Опција debug ће бити занемарена.
Поред тога, ако Zabbix UI стоји иза проксија или балансера оптерећења, може се користити прилагођена опција use_proxy_headers:
Ако користите балансeр оптерећења за повезивањем на Zabbix инстанцу, где балансeр оптерећења користи TLS/SSL, а Zabbix не, морате навести параметре 'baseurl', 'strict' и 'use_proxy_headers' на следећи начин:
$SSO['SETTINGS']=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]
Пример конфигурације: