14 Konfiguracja SAML z OneLogin
Przegląd
Ta sekcja zawiera wytyczne dotyczące konfigurowania logowania jednokrotnego oraz aprowizacji użytkowników w Zabbix z OneLogin przy użyciu uwierzytelniania SAML 2.0.
Konfiguracja OneLogin
Tworzenie aplikacji
1. Zaloguj się na swoje konto w OneLogin. Do celów testowych możesz utworzyć bezpłatne konto deweloperskie w OneLogin.
2. W interfejsie webowym OneLogin przejdź do Applications → Applications.
3. Kliknij "Add App" i wyszukaj odpowiednią aplikację. Wytyczne na tej stronie opierają się na przykładzie aplikacji SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Na początek możesz dostosować nazwę wyświetlaną swojej aplikacji. Możesz też dodać ikonę i szczegóły aplikacji. Następnie kliknij Save.
Konfiguracja SSO/SCIM provisioning
1. W Configuration -> Application details ustaw punkt końcowy logowania jednokrotnego Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs jako wartość tych pól:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Zwróć uwagę na użycie http, a nie https, aby parametr acs nie został obcięty w żądaniu.

Możliwe jest również użycie https. Aby to działało z Zabbix, należy dodać do conf/zabbix.conf.php następującą linię:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Pozostałe opcje pozostaw z wartościami domyślnymi.
2. W Configuration -> API connection ustaw następujące wartości:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: powinien zawierać wszystkie niestandardowe atrybuty, które chcesz przekazać do Zabbix przez SCIM, takie jak
user_name,user_lastname,user_emailiuser_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}"
}
Nazwy atrybutów są dowolne. Można użyć innych nazw atrybutów, jednak muszą one odpowiadać odpowiedniej wartości pola w ustawieniach Zabbix SAML.
Zwróć uwagę, że aby provisioning użytkowników działał, OneLogin musi otrzymać w odpowiedzi atrybut name z givenName i familyName, nawet jeśli nie był on wymagany przez dostawcę usług. Dlatego konieczne jest określenie tego w schemacie w części konfiguracji aplikacji.
- SCIM Bearer Token: wprowadź token API Zabbix z uprawnieniami Super admin.
Kliknij Enable, aby aktywować połączenie.

3. Na stronie Provisioning włącz opcję Provisioning:

4. Strona Parameters zawiera listę domyślnych parametrów:
- Upewnij się, że
scimusernameodpowiada wartości logowania użytkownika w OneLogin (np. adresowi e-mail); - Zaznacz opcję Include in User Provisioning dla parametru
Groups; - Kliknij "+" , aby utworzyć niestandardowe parametry wymagane dla asercji SAML i provisioning użytkowników, takie jak
user_name,user_lastname,user_emailiuser_mobile:

Podczas dodawania parametru upewnij się, że zaznaczone są zarówno opcje Include in SAML assertion, jak i Include in User Provisioning.
- Dodaj parametr
group, który odpowiada rolom użytkowników w OneLogin. Role użytkowników będą przekazywane jako ciąg znaków, rozdzielony średnikiem;. Role użytkowników OneLogin będą używane do tworzenia grup użytkowników w Zabbix:

Sprawdź listę parametrów:

5. Na stronie Rules utwórz mapowania ról użytkowników do domyślnego parametru Groups.

Możesz użyć wyrażenia regularnego, aby przekazać określone role jako grupy. Nazwy ról nie powinny zawierać ;, ponieważ OneLogin używa tego znaku jako separatora podczas wysyłania atrybutu z wieloma rolami.
Konfiguracja Zabbix
1. W Zabbix przejdź do ustawień SAML i wypełnij opcje konfiguracji na podstawie konfiguracji OneLogin:

| Pole Zabbix | Pole konfiguracji w OneLogin | Przykładowa wartość |
|---|---|---|
| IdP entity ID | Issuer URL (zobacz kartę SSO swojej aplikacji w OneLogin) |
|
| SSO service URL | SAML 2.0 Endpoint (HTTP) (zobacz kartę SSO swojej aplikacji w OneLogin) |
|
| SLO service URL | SLO Endpoint (HTTP) (zobacz kartę SSO swojej aplikacji w OneLogin) |
|
| Username attribute | Custom parameter | user_email |
| Group name attribute | Custom parameter | group |
| User name attribute | Custom parameter | user_name |
| User last name attribute | Custom parameter | user_lastname |
Wymagana jest również konfiguracja mapowania grup użytkowników. Mapowanie mediów jest opcjonalne. Kliknij Update, aby zapisać te ustawienia.
2. Pobierz certyfikat udostępniony przez OneLogin i umieść go w conf/certs instalacji frontend Zabbix jako idp.crt.
Nadaj mu uprawnienia 644, uruchamiając:
chmod 644 idp.crt
Certyfikat można pobrać w OneLogin w sekcji Applications -> SSO -> kliknij View details pod bieżącym certyfikatem.
Można użyć innej nazwy i lokalizacji certyfikatu. W takim przypadku upewnij się, że do conf/zabbix.conf.php dodano następującą linię:
$SSO['IDP_CERT'] = 'path/to/certname.crt';
Provisioning użytkowników SCIM
Po włączeniu provisioning użytkowników możliwe jest teraz dodawanie/aktualizowanie użytkowników oraz ich ról w OneLogin i natychmiastowe provisionowanie ich do Zabbix.
Na przykład możesz utworzyć nowego użytkownika:

Dodaj go do roli użytkownika oraz aplikacji, która będzie provisionować użytkownika:

Po zapisaniu użytkownika zostanie on provisionowany do Zabbix. W Application -> Users możesz sprawdzić status provisioningu bieżących użytkowników aplikacji:

Jeśli provisioning zakończy się powodzeniem, użytkownik będzie widoczny na liście użytkowników Zabbix.
