3 SAML

Преглед

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, итд.) треба да се конфигурише на следећи начин:

  • Assertion Consumer URL треба да буде подешена на <path_to_zabbix_ui>/index_sso.php?acs
  • Single Logout URL треба да буде подешен на <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

Подешавање Zabbix-а

Потребно је инсталирати php-openssl ако желите да користите SAML аутентификацију на корисничком интерфејсу.

Да бисте користили SAML аутентификацију, Zabbix би требало да буде конфигурисан на следећи начин:

1. Приватни кључ и сертификат треба да се чувају у ui/conf/certs/, осим ако нису наведене прилагођене путање zabbix.conf.php.

Подразумевано, Zabbix ће потражити на следећим локацијама:

  • ui/conf/certs/sp.key - SP приватни кључ фајл
  • ui/conf/certs/sp.crt - датотека SP сертификата
  • ui/conf/certs/idp.crt - IDP фајл сертификат

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 обезбеђивању

За обезбеђивање 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):

  • $SSO['SP_KEY'] = '<path to the SP private key file>';
  • $SSO['SP_CERT'] = '<path to the SP cert file>';
  • $SSO['IDP_CERT'] = '<path to the IDP cert file>';
  • $SSO['SETTINGS']

Zabbix користи OneLogin's SAML PHP Toolkit библиотеку (верзија 3.4.1). Структура одељка $SSO['SETTINGS'] треба да буде слична структури коју користи библиотека. За опис опције конфигурације, погледајте званичну библиотеку documentation.

Само следеће опције могу да се подесе као део $SSO['SETTINGS']:

  • strict
  • baseurl
  • compress
  • contactPerson
  • organization
  • sp (само опције наведене на овој листи)
    • attributeConsumingService
    • x509certNew
  • idp (само опције наведене на овој листи)
    • singleLogoutService (само једна опција)
    • responseUrl
    • certFingerprint
    • certFingerprintAlgorithm
    • x509certMulti
  • security (само опције наведене на овој листи)
    • signMetadata
    • wantNameId
    • requestedAuthnContext
    • requestedAuthnContextComparison
    • wantXMLValidation
    • relaxDestinationValidation
    • destinationStrictlyMatches
    • rejectUnsolicitedResponsesWithInResponseTo
    • signatureAlgorithm
    • digestAlgorithm
    • lowercaseUrlencoding

Све остале опције ће бити преузете из базе података и не могу бити надјачане. Опција debug ће бити занемарена.

Поред тога, ако Zabbix UI стоји иза проксија или балансера оптерећења, може се користити прилагођена опција use_proxy_headers:

  • false (подразумевано) - игнорише опцију;
  • true - користи X-Forwarded-* HTTP заглавља за прављење основног URL-а.

Ако користите баланс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]

Пример конфигурације:

$SSO['SETTINGS'] = [
       'security' => [
       'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
       'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
       // ...
       ],
       // ...
       ];