Настройка SAML с OneLogin
Обзор
В этом разделе приведены рекомендации по настройке единого входа и инициализации пользователей в Zabbix из OneLogin с использованием аутентификации SAML 2.0.
Настройка OneLogin
Создание приложения
1. Войдите в свою учетную запись в OneLogin. Для тестирования вы можете создать бесплатную учетную запись разработчика в OneLogin.
2. В веб-интерфейсе OneLogin перейдите в Applications > Applications.
3. Нажмите "Add App" и найдите подходящее приложение. Рекомендации на этой странице основаны на примере приложения SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Для начала вы можете настроить отображаемое имя вашего приложения. Также вы можете добавить значок и сведения о приложении. После этого нажмите Save.
Настройка подготовки SSO/SCIM
1. В разделе Configuration > Application details укажите конечную точку единого входа Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs в следующих полях:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Обратите внимание на использование http, а не https, чтобы параметр acs не был удалён из запроса.

Также можно использовать https.
Чтобы использовать этот вариант с Zabbix, добавьте следующую строку в файл конфигурации веб-интерфейса (zabbix.conf.php):
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Оставьте остальные параметры со значениями по умолчанию.
2. В разделе Configuration > API connection укажите следующие значения:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: должен содержать все пользовательские атрибуты, которые необходимо передавать в Zabbix через SCIM, например
user_name,user_lastname,user_emailи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}"
}
Имена атрибутов могут быть произвольными. Можно использовать другие имена атрибутов, однако они должны соответствовать значениям соответствующих полей в настройках SAML Zabbix.
Обратите внимание: для работы подготовки пользователей OneLogin должен получить в ответе атрибут name с атрибутами givenName и familyName, даже если поставщик услуг их не запрашивал.
Поэтому необходимо указать их в схеме в разделе конфигурации приложения.
- SCIM Bearer Token: введите API-токен Zabbix с правами супер-администратора.
Нажмите Enable, чтобы активировать подключение.

3. На странице Provisioning включите параметр Provisioning:

4. На странице Parameters содержится список параметров по умолчанию:
- Убедитесь, что
scimusernameсоответствует значению логина пользователя в OneLogin (например, адресу электронной почты); - Для параметра
Groupsвключите параметр Include in User Provisioning; - Нажмите «+», чтобы создать пользовательские параметры, необходимые для утверждений SAML и подготовки пользователей, например
user_name,user_lastname,user_emailиuser_mobile:

При добавлении параметра обязательно включите оба параметра: Include in SAML assertion и Include in User Provisioning.
- Добавьте параметр
group, соответствующий ролям пользователей в OneLogin. Роли пользователей будут передаваться в виде строки, разделённой точкой с запятой;. Роли пользователей OneLogin будут использоваться для создания групп пользователей в Zabbix:

Проверьте список параметров:

5. На странице Rules создайте сопоставления ролей пользователей с параметром Groups по умолчанию.

Для передачи определённых ролей в качестве групп можно использовать регулярное выражение.
Имена ролей не должны содержать ;, поскольку OneLogin использует этот символ как разделитель при отправке атрибута с несколькими ролями.
6. Скачайте сертификат IdP. Установите для него права 644, выполнив команду:
chmod 644 idp.crt
Конфигурация Zabbix
1. В Zabbix перейдите в раздел Настройки SAML и заполните параметры конфигурации на основе конфигурации OneLogin:

| Поле Zabbix | Поле настройки в OneLogin | Пример значения |
|---|---|---|
| Идентификатор сущности IdP | URL издателя (см. вкладку SSO приложения в OneLogin) |
|
| URL службы SSO | Конечная точка SAML 2.0 (HTTP) (см. вкладку SSO приложения в OneLogin) |
|
| URL службы SLO | Конечная точка SLO (HTTP) (см. вкладку SSO приложения в OneLogin) |
|
| Атрибут имени пользователя | Пользовательский параметр | user_email |
| Атрибут имени группы | Пользовательский параметр | group |
| Атрибут имени пользователя | Пользовательский параметр | user_name |
| Атрибут фамилии пользователя | Пользовательский параметр | user_lastname |
Также необходимо настроить сопоставление групп пользователей. Сопоставление медиа необязательно. Нажмите Обновить, чтобы сохранить эти настройки.
2. Добавьте сертификат в формате Base64, предоставленный OneLogin.
Если в файле конфигурации веб-интерфейса (zabbix.conf.php) задано $SSO['CERT_STORAGE'] = 'database', во время настройки SAML можно вставить текст сертификата или загрузить файл сертификата в веб-интерфейсе — файлы в файловой системе не требуются.
Если в файле конфигурации задано $SSO['CERT_STORAGE'] = 'file', сертификат должен быть доступен в файловой системе (по умолчанию в ui/conf/certs или по пути, настроенному в файле конфигурации), а веб-интерфейс не будет сохранять сертификаты в базе данных.
Обратите внимание: если $SSO['CERT_STORAGE'] не задан или закомментирован, используется файловое хранилище, а сертификаты считываются из ui/conf/certs.
Доступ к загрузке сертификата в OneLogin можно получить, выбрав Applications > SSO и нажав View details под текущим сертификатом.
3. Нажмите кнопку Обновить, чтобы сохранить эти настройки.
Подготовка пользователей SCIM
При включенной подготовке пользователей теперь можно добавлять/обновлять пользователей и их роли в OneLogin, после чего они будут немедленно подготовлены в Zabbix.
Например, можно создать нового пользователя:

Добавьте его в роль пользователя и в приложение, которое будет выполнять подготовку пользователя:

При сохранении пользователя он будет подготовлен в Zabbix. В Application > Users можно проверить статус подготовки текущих пользователей приложения:

Если подготовка выполнена успешно, пользователь будет отображаться в списке пользователей Zabbix.
