13 Konfiguracja SAML z Okta
Ta sekcja zawiera wskazówki dotyczące konfiguracji Okta w celu włączenia uwierzytelniania SAML 2.0 oraz provisioningu użytkowników dla Zabbix.
Konfiguracja Okta
1. Przejdź do https://developer.okta.com/signup/ i zarejestruj się / zaloguj na swoje konto.
2. W interfejsie webowym Okta przejdź do Applications → Applications.
3. Kliknij Create App Integration.

Wybierz "SAML 2.0" jako metodę logowania i kliknij Next.
4. W ustawieniach ogólnych wpisz nazwę aplikacji i kliknij Next.
5. W konfiguracji SAML wprowadź poniższe wartości, a następnie kliknij Next.

-
W sekcji General dodaj:
- Single sign-on URL:
http://<your-zabbix-url>/zabbix/index_sso.php?acs
Zwróć uwagę na użycie "http", a nie "https", aby parametracsnie został obcięty w żądaniu. Pole wyboru Use this for Recipient URL and Destination URL również powinno być zaznaczone. - Audience URI (SP Entity ID):
zabbix
Pamiętaj, że ta wartość będzie używana w asercji SAML jako unikalny identyfikator dostawcy usług (jeśli nie będzie zgodna, operacja zostanie odrzucona). W tym polu można podać adres URL lub dowolny ciąg danych. - Default RelayState:
Pozostaw to pole puste; jeśli wymagane jest niestandardowe przekierowanie, można je dodać w Zabbix w ustawieniach Users > Users. - Uzupełnij pozostałe pola zgodnie z własnymi preferencjami.
- Single sign-on URL:
-
W sekcji Attribute Statements/Group Attribute Statements dodaj:

Te deklaracje atrybutów są wstawiane do asercji SAML udostępnianych Zabbix.
Nazwy atrybutów użyte tutaj są przykładowe i dowolne. Możesz użyć innych nazw atrybutów, jednak muszą one odpowiadać odpowiednim wartościom pól w ustawieniach SAML Zabbix.
Jeśli chcesz skonfigurować logowanie SAML do Zabbix bez JIT provisioning użytkowników, wymagany jest tylko atrybut email.
Jeśli planujesz używać szyfrowanego połączenia, wygeneruj prywatny i publiczny certyfikat szyfrowania, a następnie prześlij publiczny certyfikat do Okta. Formularz przesyłania certyfikatu pojawia się, gdy Assertion Encryption jest ustawione na "Encrypted" (kliknij Show Advanced Settings, aby znaleźć ten parametr).
6. W następnej karcie wybierz "I'm a software vendor. I'd like to integrate my app with Okta" i kliknij Finish.
7. Przejdź do karty "Assignments" nowo utworzonej aplikacji i kliknij przycisk Assign, a następnie wybierz z listy rozwijanej Assign to People.

8. W wyświetlonym oknie podręcznym przypisz aplikację osobom, które będą używać SAML 2.0 do uwierzytelniania w Zabbix, a następnie kliknij Save and go back.
9. Pobierz certyfikat IdP. Nadaj mu uprawnienia 644, uruchamiając:
chmod 644 idp.crt
10. Przejdź do karty "Sign On" i kliknij przycisk View Setup Instructions.
Instrukcje konfiguracji zostaną otwarte w nowej karcie; pozostaw tę kartę otwartą podczas konfigurowania Zabbix.
Konfiguracja Zabbix
1. W Zabbix przejdź do ustawień SAML i wypełnij opcje konfiguracji na podstawie instrukcji konfiguracji z Okta:

| Pole Zabbix | Pole konfiguracji w Okta | Przykładowa wartość |
|---|---|---|
| IdP entity ID | Identity Provider Issuer | |
| SSO service URL | Identity Provider Single Sign-On URL | |
| Username attribute | Attribute name | usrEmail |
| SP entity ID | Audience URI | zabbix |
| Group name attribute | Attribute name | groups |
| User name attribute | Attribute name | user_name |
| User last name attribute | Attribute name | user_lastname |
Wymagana jest również konfiguracja mapowania grup użytkowników i mediów.
2. Dodaj certyfikat Base64 udostępniony w instrukcjach konfiguracji SAML w Okta.
Jeśli w zabbix.conf.php ustawiono $SSO['CERT_STORAGE'] = 'database', możesz wkleić tekst certyfikatu lub przesłać plik certyfikatu w frontend podczas konfiguracji SAML — pliki nie są wymagane w systemie plików.
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, przyjmowane jest przechowywanie w plikach, a certyfikaty są odczytywane z ui/conf/certs.
3. Jeśli w Okta ustawiono Assertion Encryption na "Encrypted", pole wyboru "Assertions" parametru Encrypt powinno być również zaznaczone w Zabbix.
4. Kliknij przycisk Update, aby zapisać te ustawienia.
Provisioning SCIM
1. Aby włączyć provisioning SCIM, przejdź do "General" -> "App Settings" aplikacji w Okta.
Zaznacz pole wyboru Enable SCIM provisioning. W rezultacie pojawi się nowa karta Provisioning.
2. Przejdź do karty "Provisioning", aby skonfigurować połączenie SCIM:
- W SCIM connector base URL określ ścieżkę do frontend Zabbix i dodaj do niej
api_scim.php, tj.:
https://<your-zabbix-url>/zabbix/api_scim.php - Unique identifier field for users:
email - Authentication mode:
HTTP header - W Authorization wprowadź prawidłowy token API z uprawnieniami Super admin

Jeśli występują problemy z uwierzytelnianiem, zobacz Authorization header forwarding.
3. Kliknij Test Connector Configuration, aby przetestować połączenie. Jeśli wszystko jest poprawne, zostanie wyświetlony komunikat o powodzeniu.
4. W "Provisioning" -> "To App" upewnij się, że zaznaczono następujące pola wyboru:
- Create Users
- Update User Attributes
- Deactivate Users
Dzięki temu te typy żądań będą wysyłane do Zabbix.
5. Upewnij się, że wszystkie atrybuty zdefiniowane w SAML są zdefiniowane w SCIM. Do edytora profilu aplikacji możesz przejść w "Provisioning" -> "To App", klikając Go to Profile Editor.
Kliknij Add Attribute.
Wypełnij wartości Display name, Variable name, External name nazwą atrybutu SAML, na przykład user_name.

External namespace powinien być taki sam jak schemat użytkownika: urn:ietf:params:scim:schemas:core:2.0:User
6. Przejdź do "Provisioning" -> "To App" -> "Attribute Mappings" swojej aplikacji. Kliknij na dole Show Unmapped Attributes. Pojawią się nowo dodane atrybuty.
7. Przypisz każdy dodany atrybut.

8. Dodaj użytkowników na karcie "Assignments". Użytkownicy wcześniej muszą zostać dodani w Directory -> People. Wszystkie te przypisania zostaną wysłane jako żądania do Zabbix.
9. Dodaj grupy na karcie "Push Groups". Wzorzec mapowania grup użytkowników w ustawieniach SAML Zabbix musi odpowiadać grupie określonej tutaj. Jeśli nie ma dopasowania, użytkownik nie może zostać utworzony w Zabbix.
Informacje o członkach grupy są wysyłane za każdym razem, gdy zostanie wprowadzona jakaś zmiana.