12 Konfiguracja SAML z Okta
Ta sekcja zawiera wytyczne dotyczące konfiguracji Okta, aby umożliwić 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 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 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 Attribute Statements/Group Attribute Statements dodaj:

Te deklaracje atrybutów są wstawiane do asercji SAML współdzielonych z Zabbix.
Nazwy atrybutów użyte tutaj są przykładowe i dowolne. Możesz użyć innych nazw atrybutów, jednak wymagane jest, aby odpowiadały one odpowiedniej wartości pola 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 do folderu ui/conf/certs jako idp.crt.
Ustaw dla niego uprawnienia 644, uruchamiając:
chmod 644 idp.crt
3. Jeśli w Okta dla Assertion Encryption ustawiono wartość "Encrypted", pole wyboru "Assertions" parametru Encrypt powinno być również zaznaczone w Zabbix.
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
Dzięki temu te typy żądań będą wysyłane do Zabbix.
5. Upewnij się, że wszystkie atrybuty zdefiniowane w SAML są zdefiniowane również w SCIM. Możesz uzyskać dostęp do edytora profilu dla swojej aplikacji 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 mapowanie do każdego dodanego atrybutu.

8. Dodaj użytkowników w 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 w 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.