14 Настройка 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, необходимо добавить в conf/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}"
}
Имена атрибутов являются произвольными. Можно использовать другие имена атрибутов, однако требуется, чтобы они совпадали со значением соответствующего поля в настройках Zabbix SAML.
Обратите внимание, что для работы подготовки пользователей OneLogin должен получать в ответе атрибут 'name' с 'givenName' и 'familyName', даже если это не требовалось поставщиком услуг. Поэтому необходимо указать это в схеме в разделе конфигурации приложения.
- SCIM Bearer Token: введите токен Zabbix API с правами Super admin.
Нажмите Enable, чтобы активировать соединение.

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

4. На странице Parameters содержится список параметров по умолчанию:
- Убедитесь, что 'scimusername' соответствует значению логина пользователя в OneLogin (например, email);
- Отметьте параметр Include in User Provisioning для параметра 'Groups';
- Нажмите "+", чтобы создать пользовательские параметры, необходимые для 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 entity ID | Issuer URL (см. вкладку SSO вашего приложения в OneLogin) |
|
| SSO service URL | SAML 2.0 Endpoint (HTTP) (см. вкладку SSO вашего приложения в OneLogin) |
|
| SLO service URL | SLO Endpoint (HTTP) (см. вкладку SSO вашего приложения в OneLogin) |
|
| Username attribute | Пользовательский параметр | user_email |
| Group name attribute | Пользовательский параметр | group |
| User name attribute | Пользовательский параметр | user_name |
| User last name attribute | Пользовательский параметр | user_lastname |
Также необходимо настроить сопоставление групп пользователей. Сопоставление способов оповещения является необязательным. Нажмите Update, чтобы сохранить эти настройки.
2. Добавьте сертификат Base64, предоставленный OneLogin.
Если в zabbix.conf.php задано $SSO['CERT_STORAGE'] = 'database', вы можете вставить текст сертификата или загрузить файл сертификата в веб-интерфейс во время настройки SAML — файлы в файловой системе не требуются.
Если в zabbix.conf.php задано $SSO['CERT_STORAGE'] = 'file', сертификат должен быть доступен в файловой системе (по умолчанию в ui/conf/certs или по пути, настроенному в zabbix.conf.php), и веб-интерфейс не будет хранить сертификаты в базе данных.
Обратите внимание, что если $SSO['CERT_STORAGE'] не задан или закомментирован, предполагается файловое хранилище, и сертификаты считываются из ui/conf/certs.
Доступ к загрузке сертификата в OneLogin можно получить в Applications -> SSO -> нажмите View details под текущим сертификатом.
3. Нажмите кнопку Update, чтобы сохранить эти настройки.
SCIM-подготовка пользователей
Если подготовка пользователей включена, теперь можно добавлять/обновлять пользователей и их роли в OneLogin, и они будут немедленно подготовлены в Zabbix.
Например, вы можете создать нового пользователя:

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

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

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