[comment]: # ({236cb9a8-e09cf279})
# 13 Konfiguracja SAML z Okta

Ta sekcja zawiera wskazówki dotyczące konfiguracji [Okta](https://okta.com), aby włączyć uwierzytelnianie SAML 2.0
oraz provisioning użytkowników dla Zabbix.

[comment]: # ({/236cb9a8-e09cf279})

[comment]: # ({9295c91d-c8df5f13})
#### 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*.

![](../../../../assets/en/manual/appendix/install/okta_app_create.png){width="600"}

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*.

![](../../../../assets/en/manual/appendix/install/okta_app_conf.png){width="600"}

-   W sekcji **General** dodaj:
    -   *Single sign-on URL*:
        `http://<your-zabbix-url>/zabbix/index_sso.php?acs`<br>
        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`<br>
        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*:<br>
        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 sekcji **Attribute Statements/Group Attribute Statements** dodaj:

![](../../../../assets/en/manual/appendix/install/okta_app_conf2.png){width="600"}

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.

::: noteclassic
 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*.

![](../../../../assets/en/manual/appendix/install/okta_app_assign.png)

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.

[comment]: # ({/9295c91d-c8df5f13})

[comment]: # ({940784da-bdad4ea8})
#### Konfiguracja Zabbix

1\. W Zabbix przejdź do [ustawień SAML](/manual/web_interface/frontend_sections/users/authentication/saml#setting-up-zabbix) i wypełnij opcje konfiguracji na podstawie instrukcji konfiguracji z Okta:

![](../../../../assets/en/manual/appendix/install/okta_zabbix_saml.png){width="600"}

|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.

[comment]: # ({/940784da-bdad4ea8})

[comment]: # ({87d78e73-ff17ddca})
#### 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.:<br>
    `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

![](../../../../assets/en/manual/appendix/install/okta_scim_conn.png){width="600"}

::: noteimportant
Jeśli występują problemy z uwierzytelnianiem, zobacz [Authorization header forwarding](/manual/installation/known_issues#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`.

![](../../../../assets/en/manual/appendix/install/okta_add_attr.png)

*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.

![](../../../../assets/en/manual/appendix/install/okta_map_attr.png)

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.

[comment]: # ({/87d78e73-ff17ddca})
