13 Konfiguracja SAML z Okta
Ta sekcja zawiera wskazówki dotyczące konfiguracji Okta, aby włączyć uwierzytelnianie SAML 2.0 oraz provisioning 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
Zwróć uwagę, ż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 znaków. - 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 mogą być 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 pojawi się, gdy Assertion Encryption zostanie 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 naciśnij "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 oknie podręcznym, które się pojawi, 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. 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. Pobierz certyfikat udostępniony w instrukcjach konfiguracji SAML w Okta i zapisz go w folderze ui/conf/certs jako idp.crt.
Nadaj mu uprawnienia 644, uruchamiając:
chmod 644 idp.crt
3. Jeśli w Okta ustawiono Assertion Encryption na "Encrypted", w Zabbix należy również zaznaczyć pole wyboru "Assertions" dla parametru Encrypt.
4. Naciśnij 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
Zapewni to, że te typy żądań będą wysyłane do Zabbix.
5. Upewnij się, że wszystkie atrybuty zdefiniowane w SAML są zdefiniowane w SCIM. Edytor profilu dla aplikacji jest dostępny w "Provisioning" -> "To App" po kliknięciu 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 muszą wcześniej 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 zgodności, 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.