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 web 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ć wyświetlaną nazwę swojej aplikacji. Możesz również dodać ikonę i szczegóły aplikacji. Następnie kliknij Save.

Konfigurowanie provisioningu SSO/SCIM

1. W Configuration -> Application details ustaw endpoint logowania jednokrotnego Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs jako wartość następujących 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];

Pozostaw pozostałe opcje z ich 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 atrybuty niestandardowe, które chcesz przekazać do Zabbix przez SCIM, takie jak user_name, user_lastname, user_email i user_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żywać innych nazw atrybutów, jednak wymagane jest, aby odpowiadały one wartościom odpowiednich pól w ustawieniach Zabbix SAML.

Pamiętaj, że aby provisioning użytkowników działał, OneLogin musi otrzymać w odpowiedzi atrybut „name” z wartościami „givenName” i „familyName”, nawet jeśli nie było to wymagane przez dostawcę usługi. 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ę parametrów domyślnych:

  • Upewnij się, że „scimusername” odpowiada wartości loginu użytkownika w OneLogin (np. adresowi e-mail);
  • Zaznacz opcję Include in User Provisioning dla parametru „Groups”;
  • Kliknij „+”, aby utworzyć parametry niestandardowe wymagane do asercji SAML i provisioningu użytkowników, takie jak user_name, user_lastname, user_email i user_mobile:

Podczas dodawania parametru pamiętaj, aby zaznaczyć zarówno opcję 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:

Zweryfikuj 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 przekazywać określone role jako grupy. Nazwy ról nie powinny zawierać ;, ponieważ OneLogin używa go jako separatora podczas wysyłania atrybutu z kilkoma rolami.

6. Pobierz certyfikat IdP. Ustaw dla niego uprawnienia 644, uruchamiając:

chmod 644 idp.crt

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 Parametr niestandardowy user_email
Group name attribute Parametr niestandardowy group
User name attribute Parametr niestandardowy user_name
User last name attribute Parametr niestandardowy user_lastname

Wymagane jest również skonfigurowanie mapowania grup użytkowników. Mapowanie mediów jest opcjonalne. Kliknij Update, aby zapisać te ustawienia.

2. Dodaj certyfikat Base64 dostarczony przez OneLogin.

Jeśli w zabbix.conf.php ustawiono $SSO['CERT_STORAGE'] = 'database', możesz wkleić treść certyfikatu lub przesłać plik certyfikatu w frontend podczas konfiguracji SAML — żadne pliki w systemie plików nie są wymagane.

Jeśli w zabbix.conf.php ustawiono $SSO['CERT_STORAGE'] = 'file', certyfikat musi być dostępny w systemie plików (domyślnie w ui/conf/certs lub w ścieżce skonfigurowanej w zabbix.conf.php), a frontend nie będzie przechowywać certyfikatów w bazie danych. Zwróć uwagę, że jeśli $SSO['CERT_STORAGE'] nie jest ustawione lub jest zakomentowane, zakładane jest przechowywanie w plikach, a certyfikaty są odczytywane z ui/conf/certs.

Dostęp do pobrania certyfikatu w OneLogin uzyskasz w Applications -> SSO -> kliknij View details pod bieżącym certyfikatem.

3. Naciśnij przycisk Update, aby zapisać te ustawienia.

Provisioning użytkowników SCIM

Po włączeniu provisioningu użytkowników możliwe jest teraz dodawanie/aktualizowanie użytkowników i ich ról w OneLogin oraz ich natychmiastowe provisionowanie do Zabbix.

Na przykład możesz utworzyć nowego użytkownika:

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

Po zapisaniu użytkownika zostanie on provisionowany do Zabbix. W sekcji 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.