12. Настройка SAML с Okta

В этом разделе приведены рекомендации по настройке Okta для включения аутентификации SAML 2.0 и инициализации пользователей для Zabbix.

Настройка Okta

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

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

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

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

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

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

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

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

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

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

Если вы планируете использовать зашифрованное соединение, сгенерируйте закрытый и открытый (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» из раскрывающегося списка.

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

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

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

Настройка Zabbix

1. В Zabbix перейдите в настройки SAML (SAML settings) и заполните параметры конфигурации в соответствии с инструкциями по настройке из Okta:

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

Инициализация SCIM

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

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

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

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

Если у вас возникли проблемы с аутентификацией, смотрите Проброс заголовка 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.

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

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

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

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

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

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