[comment]: # ({8d23af63-23bd62a5})
# 14 Konfiguracja SAML z OneLogin

[comment]: # ({/8d23af63-23bd62a5})

[comment]: # ({b873fa12-2fcac093})
#### Przegląd

Ta sekcja zawiera wytyczne dotyczące konfigurowania logowania jednokrotnego oraz aprowizacji użytkowników w Zabbix z [OneLogin](https://onelogin.com) przy użyciu uwierzytelniania SAML 2.0.

[comment]: # ({/b873fa12-2fcac093})

[comment]: # ({b1fbe677-04a34e60})
#### Konfiguracja OneLogin

[comment]: # ({/b1fbe677-04a34e60})

[comment]: # ({ac4e104b-f0ff96b7})
##### Tworzenie aplikacji

1\. Zaloguj się na swoje konto w OneLogin. Do celów testowych możesz utworzyć bezpłatne konto deweloperskie w OneLogin.

2\. W interfejsie webowym OneLogin przejdź do *Applications → Applications*.

3\. Kliknij "Add App" i wyszukaj odpowiednią aplikację. Wytyczne na tej stronie opierają się na przykładzie aplikacji *SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML)*.

4\. Na początek możesz dostosować nazwę wyświetlaną swojej aplikacji. Możesz też dodać ikonę i szczegóły aplikacji. Następnie kliknij *Save*.

[comment]: # ({/ac4e104b-f0ff96b7})

[comment]: # ({3bcbc5e8-58a8c759})
##### Konfiguracja SSO/SCIM provisioning

1\. W *Configuration* -> *Application details* ustaw punkt końcowy logowania jednokrotnego Zabbix `http://<zabbix-instance-url>/zabbix/index_sso.php?acs` jako wartość tych pól:

-   *ACS (Consumer) URL Validator*
-   *ACS (Consumer) URL*

Zwróć uwagę na użycie `http`, a nie `https`, aby parametr `acs` nie został obcięty w żądaniu.

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

Możliwe jest również użycie `https`. Aby to działało z Zabbix, należy dodać do `conf/zabbix.conf.php` następującą linię:

```
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
```

Pozostałe opcje pozostaw z wartościami domyślnymi.

2\. W *Configuration* -> *API connection* ustaw następujące wartości:

-   *SCIM Base URL*: `https://<zabbix-instance-url>/zabbix/api_scim.php`
-   *SCIM JSON Template*: powinien zawierać wszystkie niestandardowe atrybuty, które chcesz przekazać do Zabbix przez SCIM, takie jak `user_name`, `user_lastname`, `user_email` i `user_mobile`:

```
{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "userName": "{$parameters.scimusername}",
  "name": {
    "familyName": "{$user.lastname}",
    "givenName": "{$user.firstname}"
  },
   "user_name": "{$user.firstname}",
   "user_lastname": "{$user.lastname}",
   "user_mobile": "{$user.phone}",
   "user_email": "{$user.email}"
}
```
Nazwy atrybutów są dowolne. Można użyć innych nazw atrybutów, jednak muszą one odpowiadać odpowiedniej wartości pola w ustawieniach Zabbix SAML.

Zwróć uwagę, że aby provisioning użytkowników działał, OneLogin musi otrzymać w odpowiedzi atrybut `name` z `givenName` i `familyName`, nawet jeśli nie był on wymagany przez dostawcę usług. Dlatego konieczne jest określenie tego w schemacie w części konfiguracji aplikacji.

-   *SCIM Bearer Token*: wprowadź token API Zabbix z uprawnieniami Super admin. 

Kliknij *Enable*, aby aktywować połączenie.

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

3\. Na stronie *Provisioning* włącz opcję Provisioning:

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

4\. Strona *Parameters* zawiera listę domyślnych parametrów:

-   Upewnij się, że `scimusername` odpowiada wartości logowania użytkownika w OneLogin (np. adresowi e-mail);
-   Zaznacz opcję *Include in User Provisioning* dla parametru `Groups`;
-   Kliknij "+" , aby utworzyć niestandardowe parametry wymagane dla asercji SAML i provisioning użytkowników, takie jak `user_name`, `user_lastname`, `user_email` i `user_mobile`:

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

Podczas dodawania parametru upewnij się, że zaznaczone są zarówno opcje *Include in SAML assertion*, jak i *Include in User Provisioning*.

-   Dodaj parametr `group`, który odpowiada rolom użytkowników w OneLogin. Role użytkowników będą przekazywane jako ciąg znaków, rozdzielony średnikiem `;`. Role użytkowników OneLogin będą używane do tworzenia grup użytkowników w Zabbix:

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

Sprawdź listę parametrów:

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

5\. Na stronie *Rules* utwórz mapowania ról użytkowników do domyślnego parametru Groups.

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

Możesz użyć wyrażenia regularnego, aby przekazać określone role jako grupy. Nazwy ról nie powinny zawierać `;`, ponieważ OneLogin używa tego znaku jako separatora podczas wysyłania atrybutu z wieloma rolami.

[comment]: # ({/3bcbc5e8-58a8c759})

[comment]: # ({ba0bd783-9be86dbb})
#### 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 konfiguracji OneLogin:

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

|Pole Zabbix|Pole konfiguracji w OneLogin|Przykładowa wartość|
|----|----|--|
|*IdP entity ID*|Issuer URL<br>(zobacz kartę SSO swojej aplikacji w OneLogin)| |
|*SSO service URL*|SAML 2.0 Endpoint (HTTP)<br>(zobacz kartę SSO swojej aplikacji w OneLogin)| |
|*SLO service URL*|SLO Endpoint (HTTP)<br>(zobacz kartę SSO swojej aplikacji w OneLogin)| |
|*Username attribute*|Custom parameter|`user_email`|
|*Group name attribute*|Custom parameter|`group`|
|*User name attribute*|Custom parameter|`user_name`|
|*User last name attribute*|Custom parameter|`user_lastname`|

Wymagana jest również konfiguracja mapowania grup użytkowników. Mapowanie mediów jest opcjonalne. Kliknij *Update*, aby zapisać te ustawienia.

2\. Pobierz certyfikat udostępniony przez OneLogin i umieść go w `conf/certs` instalacji frontend Zabbix jako idp.crt. 

Nadaj mu uprawnienia 644, uruchamiając:

    chmod 644 idp.crt

Certyfikat można pobrać w OneLogin w sekcji *Applications* -> *SSO* -> kliknij *View details* pod bieżącym certyfikatem.

Można użyć innej nazwy i lokalizacji certyfikatu. W takim przypadku upewnij się, że do `conf/zabbix.conf.php` dodano następującą linię:

```
$SSO['IDP_CERT'] = 'path/to/certname.crt';
```

[comment]: # ({/ba0bd783-9be86dbb})

[comment]: # ({91a2d08a-09c52023})
#### Provisioning użytkowników SCIM

Po włączeniu provisioning użytkowników możliwe jest teraz dodawanie/aktualizowanie użytkowników oraz ich ról w OneLogin i natychmiastowe provisionowanie ich do Zabbix.

Na przykład możesz utworzyć nowego użytkownika:

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

Dodaj go do roli użytkownika oraz aplikacji, która będzie provisionować użytkownika:

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

Po zapisaniu użytkownika zostanie on provisionowany do Zabbix. W Application -> Users możesz sprawdzić status provisioningu bieżących użytkowników aplikacji:

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

Jeśli provisioning zakończy się powodzeniem, użytkownik będzie widoczny na liście użytkowników Zabbix.

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

[comment]: # ({/91a2d08a-09c52023})
