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 instrukcje atrybutów są wstawiane do asercji SAML udostępnianych Zabbix.
Użyte tutaj nazwy atrybutów 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 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 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 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 uzupeł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 |
Wymagane jest również skonfigurowanie mapowania grup użytkowników i mediów.
2. Dodaj certyfikat Base64 podany w instrukcjach konfiguracji SAML w Okta.
Jeśli w pliku konfiguracji frontendu (zabbix.conf.php) ustawiono $SSO['CERT_STORAGE'] = 'database', podczas konfiguracji SAML możesz wkleić tekst certyfikatu lub przesłać plik certyfikatu w frontendzie — pliki w systemie plików nie są wymagane.
Jeśli w pliku konfiguracji 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 pliku konfiguracji), a frontend nie będzie przechowywać certyfikatów w bazie danych.
Pamiętaj, że jeśli $SSO['CERT_STORAGE'] nie jest ustawione lub jest zakomentowane, zakładane jest przechowywanie w pliku, a certyfikaty są odczytywane z ui/conf/certs.
3. Jeśli w Okta dla opcji Assertion Encryption ustawiono wartość „Encrypted”, w Zabbix należy również zaznaczyć pole wyboru „Assertions” parametru Encrypt.
4. Kliknij przycisk Update, aby zapisać te ustawienia.
Inicjowanie obsługi SCIM
1. Aby włączyć inicjowanie obsługi SCIM, przejdź do sekcji 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 polu SCIM connector base URL określ ścieżkę do frontendu Zabbix i dodaj do niej
api_scim.php, na przykład:
https://<your-zabbix-url>/zabbix/api_scim.php - Unique identifier field for users:
email - Authentication mode:
HTTP header - W polu Authorization wprowadź prawidłowy token API z uprawnieniami Super admin.

Jeśli występują problemy z uwierzytelnianiem, zobacz Przekazywanie nagłówka autoryzacji.
3. Kliknij Test Connector Configuration, aby przetestować połączenie. Jeśli wszystko jest poprawnie skonfigurowane, zostanie wyświetlony komunikat o powodzeniu.
4. W sekcji Provisioning > To App upewnij się, że zaznaczone są 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. Edytor profilu aplikacji jest dostępny w sekcji Provisioning > To App. Kliknij Go to Profile Editor.
Kliknij Add Attribute.
Wprowadź wartości w polach Display name, Variable name i External name, używając nazwy atrybutu SAML, na przykład user_name.

External namespace powinno być takie samo jak schemat użytkownika: urn:ietf:params:scim:schemas:core:2.0:User
6. Przejdź do sekcji Provisioning > To App > Attribute Mappings aplikacji. Kliknij Show Unmapped Attributes na dole strony. Pojawią się nowo dodane atrybuty.
7. Zmapuj każdy dodany atrybut.

8. Dodaj użytkowników na karcie „Assignments”. Użytkownicy muszą wcześniej zostać dodani w sekcji Directory > People. Wszystkie te przypisania zostaną wysłane do Zabbix jako żądania.
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 zmiana.