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 parametr acs nie 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.
  • 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.