В этом разделе приведены рекомендации по настройке единого входа и инициализации пользователей в Zabbix из OneLogin с использованием аутентификации SAML 2.0.
1. Войдите в свою учетную запись в OneLogin. Для целей тестирования вы можете создать бесплатную учетную запись разработчика в OneLogin.
2. В веб-интерфейсе OneLogin перейдите в Applications → Applications (Приложения → Приложения).
3. Нажмите «Add App (Добавить приложение)» и найдите соответствующее приложение. Рекомендации на этой странице основаны на примере приложения SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Для начала вы можете настроить отображаемое имя вашего приложения. Вы также можете добавить значок и сведения о приложении. После этого нажмите Save (Сохранить).
1. В Configuration -> Application details (Конфигурация -> Сведения о приложении) установите конечную точку единого входа Zabbix http://<url-экземпляра-zabbix>/zabbix/index_sso.php?acs
в качестве значения следующих полей:
Обратите внимание на использование «http», а не «https», чтобы параметр acs
не был вырезан в запросе.
Также можно использовать и «https». Чтобы это работало с Zabbix, необходимо добавить в conf/zabbix.conf.php
следующую строку:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Оставьте остальные параметры со значениями по умолчанию.
2. В Configuration -> API connection (Конфигурация -> Подключение API) установите следующие значения:
https://<zabbix-instance-url>/zabbix/api_scim.php
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», даже если это не требовалось поставщиком услуг. Поэтому необходимо указать это в схеме в части настроек приложения.
Нажмите Enable, чтобы активировать соединение.
3. На странице Provisioning включите опцию «Enable provisioning»:
4. На странице Parameters содержится список параметров по умолчанию:
user_name
, user_lastname
, user_email
и user_mobile
:При добавлении параметра обязательно отметьте оба параметра Include in SAML assertion и Include in User Provisioning.
;
в качестве разделителя. Роли пользователей OneLogin будут использоваться для создания групп пользователей в Zabbix:Проверьте список параметров:
5. На странице Rules (Правила) создайте сопоставления ролей пользователей с параметром по умолчанию Groups (Группы).
Вы можете использовать регулярное выражение для передачи определённых ролей в качестве групп. Имена ролей не должны содержать ;
, так как OneLogin использует его в качестве разделителя при отправке атрибута с несколькими ролями.
1. В Zabbix перейдите в Настройки SAML (SAML settings) и заполните параметры конфигурации на основе конфигурации OneLogin:
Поле Zabbix | Поле настрек в OneLogin | Пример значения |
---|---|---|
IdP entity ID | Issuer URL (см. вкладку SSO вашего приложения в OneLogin) |
|
URL единого входа (SSO service URL) |
SAML 2.0 Endpoint (HTTP) (см. вкладку SSO вашего приложения в OneLogin) |
|
URL единого выхода (SLO service URL) |
SLO Endpoint (HTTP) (см. вкладку SSO вашего приложения в 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 |
Также необходимо настроить соответствие группе пользователей. Cоответствие способов оповещений является необязательным. Нажмите Update (Обновить), чтобы сохранить эти настройки.
2. Загрузите сертификат, предоставленный OneLogin, и поместите его в conf/certs
вашей инсталляции веб-интерфейса Zabbix как idp.crt.
Установите для него права доступа 644, выполнив:
Вы можете получить доступ к загрузке сертификата в OneLogin в Applications (Приложения) -> SSO -> нажмите View details (Просмотреть подробности) под текущим сертификатом.
Можно использовать другое имя и местоположение сертификата. В этом случае убедитесь, что в conf/zabbix.conf.php
добавлена следующая строка:
$SSO['IDP_CERT'] = 'путь/к/certname.crt';
При включённой инициализации пользователей теперь можно добавлять/обновлять пользователей и их роли в OneLogin и немедленно получать их в Zabbix.
Например, вы можете создать нового пользователя:
Добавьте его в роль пользователя и приложение, которое будет инициализировать пользователя:
При сохранении пользователя он будет инициализирован в Zabbix. В Application -> Users вы можете проверить статус инициализации текущих пользователей приложения:
Если инициализация прошла успешно, пользователь будет виден в списке пользователей Zabbix.