[comment]: # ({236cb9a8-e09cf279})
# 13 Настройка SAML с Okta

В этом разделе приведены рекомендации по настройке [Okta](https://okta.com) для включения аутентификации SAML 2.0 и подготовки пользователей для Zabbix.

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

[comment]: # ({9295c91d-c8df5f13})
#### Настройка Okta

1\. Перейдите к <https://developer.okta.com/signup/> и зарегистрируйтесь/войдите в свою учётную запись.

2\. В веб-интерфейсе Okta перейдите к *Applications → Applications*.

3\. Нажмите на *Create App Integration*.

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

Выберите «SAML 2.0» в качестве метода входа и нажмите *Next*.

4\. В общих настройках введите имя приложения и нажмите *Next*.

5\. В настройках SAML введите указанные ниже значения, затем нажмите *Next*.

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

-   В **General** добавьте:
    -   *Single sign-on URL*:
        `http://<url-вашего-zabbix>/zabbix/index_sso.php?acs`<br>
        Обратите внимание на использование «http», а не «https», чтобы параметр `acs` не был вырезан в запросе. Также следует отметить флажок *Use this for Recipient URL and Destination URL*.
    -   *Audience URI (SP Entity ID)*: `zabbix`<br>
        Обратите внимание, что это значение будет использоваться в декларации SAML
        (SAML assertion) в качестве уникального идентификатора поставщика услуг
        (если не совпадает, операция будет отклонена). В этом поле можно указать
        URL-адрес или любую строку данных.
    -   *Default RelayState*:<br>
        Оставьте это поле пустым; если требуется пользовательское перенаправление,
        его можно добавить в Zabbix в настройках *Пользователи → Пользователи*.
    -   Заполните остальные поля в соответствии с вашими предпочтениями.

-   В **Attribute Statements/Group Attribute Statements** добавьте:

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

Эти заявления атрибутов (attribute statements) вставляются в утверждения SAML, используемые вместе с Zabbix. 

Используемые здесь имена атрибутов являются произвольными примерами. Вы можете использовать другие имена атрибутов, однако необходимо, чтобы они совпадали со значениями соответствующего поля в настройках SAML в Zabbix.

Если вы хотите настроить единый вход SAML в Zabbix *без* JIT инициализации пользователей, то требуется только атрибут email.

::: noteclassic
Если вы планируете использовать зашифрованное соединение, сгенерируйте закрытый и открытый (private/public) сертификаты шифрования, затем загрузите открытый сертификат в Okta. Диалог загрузки сертификата появляется, когда *Assertion Encryption* установлено в значение «Encrypted» (чтобы найти этот параметр, нажмите *Show Advanced Settings*).
:::

6\. На следующей вкладке выберите: «I'm a software vendor. I'd like to
integrate my app with Okta (Я поставщик программного обеспечения. Я хочу интегрировать свое приложение с Okta)» и нажмите «Finish».

7\. Перейдите на вкладку «Assignments» недавно созданного приложения и нажмите кнопку *Assign*, затем выберите «Assign to People» из раскрывающегося списка.

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

8\. В появившемся всплывающем окне назначьте приложение людям, которые будут использовать SAML 2.0 для аутентификации в Zabbix, затем нажмите *Save and go back*.

9\. Перейдите на вкладку «Sign On» и нажмите на кнопку *View Setup
Instructions (Просмотреть инструкции по настройке)*. 

**Инструкции** по настройке будут открыты в новой вкладке; держите эту вкладку открытой во время настройки Zabbix.

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

[comment]: # ({940784da-bdad4ea8})
#### Настройка Zabbix

1\. В Zabbix перейдите в [настройки SAML (SAML settings)](/manual/web_interface/frontend_sections/users/authentication/saml#настройка-zabbix) 
и заполните параметры конфигурации в соответствии с инструкциями по настройке из Okta:

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

|Поле в Zabbix|Поле настроек в Okta|Пример значения|
|----|----|--|
|*IdP entity ID*|Identity Provider Issuer| |
|*URL единого входа*<br>*(SSO service URL)*|Identity Provider Single Sign-On URL| |
|*Атрибут имени пользователя*<br>*(Username attribute)*|Attribute name|`usrEmail`|
|*ID объекта SP*<br>*(SP entity ID)*|Audience URI|`zabbix`|
|*Атрибут имени группы*<br>*(Group name attribute)*|Attribute name|`groups`|
|*Атрибут имени пользователя*<br>*(User name attribute)*|Attribute name|`user_name`|
|*Атрибут фамилии пользователя*<br>*(User last name attribute)*|Attribute name|`user_lastname`|

Также необходимо настроить соответствие группе пользователей и соответствие способов оповещений.

2\. Сертификат, предоставленный в инструкциях по настройке Okta SAML, загрузите в папку *ui/conf/certs* как idp.crt. 

Установите для него права доступа 644, выполнив:

    chmod 644 idp.crt

3\. Если *Assertion Encryption* в Okta имеет значение «Encrypted», флажок
«Декларации (Assertions)» параметра *Шифрование (Encrypt)* в Zabbix также должен быть отмечен.

4\. Нажмите кнопку «Обновить (Update)», чтобы сохранить эти настройки.

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

[comment]: # ({87d78e73-ff17ddca})
#### Инициализация SCIM

1\. Чтобы включить инициализацию SCIM, перейдите в раздел «General» -> «App Settings» приложения в Okta.

Отметьте флажок *Enable SCIM provisioning*. В результате появится новая вкладка *Provisioning*.

2\. Перейдите на вкладку «Provisioning» для настройки подключения SCIM:

-   В *SCIM connector base URL* укажите путь к веб-интерфейсу Zabbix и добавьте к нему `api_scim.php`, например:<br>
    `https://<your-zabbix-url>/zabbix/api_scim.php`
-   *Unique identifier field for users*: `email`
-   *Authentication mode*: `HTTP header`
-   В *Authorization* введите действительный API-токен с правами Супер-администратора

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

::: noteimportant
Если у вас возникли проблемы с аутентификацией, смотрите [Проброс заголовка Authorization](/manual/installation/known_issues#проброс-заголовка-authorization).
:::

3\. Нажмите *Test Connector Configuration*, чтобы проверить подключение. Если все правильно, отобразится сообщение об успешном завершении.

4\. В «Provisioning» -> «To App» убедитесь, что отмечены следующие флажки:

-    Create Users
-    Update User Attributes
-    Deactivate Users

Это гарантирует, что эти типы запросов будут отправлены в Zabbix.

5\. Убедитесь, что все атрибуты, определённые в SAML, определены в SCIM. Вы можете получить доступ к редактору профиля для вашего приложения в «Provisioning» -> «To App», нажав *Go to Profile Editor*.

Нажмите *Add Attribute*. Заполните значения для *Display name*, *Variable name*, *External name* именем атрибута SAML, например, `user_name`.

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

*External namespace* должно быть таким же, как и схема пользователя: `urn:ietf:params:scim:schemas:core:2.0:User`

6\. Перейдите в раздел «Provisioning» -> «To App» -> «Attribute Mappings» вашего приложения. Нажмите *Show Unmapped Attributes* внизу. Появятся недавно добавленные атрибуты.

7\. Сопоставьте каждый добавленный атрибут.

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

8\. Добавьте пользователей на вкладке «Assignments». Ранее пользователей нужно было добавить в *Directory* -> *People*. Все эти назначения будут отправлены как запросы в Zabbix.

9\. Добавьте группы на вкладке «Push Groups». Шаблон соответствия групп пользователей в настройках SAML в Zabbix должен соответствовать указанной здесь группе. Если соответствия нет, пользователь не сможет быть создан в Zabbix.

Информация о членах группы отправляется каждый раз, когда вносятся какие-либо изменения.

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