Настройка LDAP-аутентификации в InterSystems Caché на базе Microsoft Active Directory

С одной стороны настройка LDAP-аутентификации в Caché не очень сложная — в документации этот процесс описан шестью пунктами. С другой стороны если LDAP-сервер на базе Microsoft Active Directory, то есть несколько не очевидных моментов, которые надо настроить на стороне LDAP-сервера. Так же для тех, кто не часто занимается подобными настройками, есть шанс запутаться в настройках безопасности Caché. В этой статье пошагово опишем процесс настройки LDAP-аутентификации, а также методы диагностики проблем в случае, если что-то не получается.

Настройка LDAP-сервера

1. Создаем пользователя в ActiveDirectory, с помощью которого будет подключаться Caché и искать информацию в базе LDAP. Этот пользователь должен находиться строго в корне домена
ldap admin

2. Для пользователей, которые будут подключатся к Caché, создадим отдельное подразделение. Назовем его «IdapCacheUsers»
3. Регистрируем там пользователей
ldap admin

4. Протестируем доступность LDAP-базы с помощью программы ldapAdmin. Скачать ee можно здесь.

5. Настраиваем подключение к LDAP-серверу:
ldap admin

6. Подключились. Посмотрели, что всё работает:
ldap admin

7. Так как пользователи, которые будут подключаться к Caché, находятся в подразделении «ldapCacheUsers», ограничим поиск только по этому подразделению
ldap cache connection properties
ldap admin

Настройка на стороне Caché

8. LDAP-сервер готов, теперь переходим к настройкам на стороне Caché. Заходим в портал управления -> Администрирование системы ->Безопасность ->Безопасность системы ->Опции LDAP. Поля «Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default namespace)» ,«Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default routine)» и«Атрибут пользователь для получения ролей (User attribute to retrieve roles)» очищаем, так как этих атрибутов пока нет в LDAP-базе.

Комментарий по поводу перевода

Правда, в этом месте русский перевод не совсем удачный правильней было бы перевести так: «Атрибут пользователя для получения области по умолчанию», «Атрибут пользователя для получения программы по умолчанию» и «Атрибут пользователя для получения ролей».
ldap admin

9. Разрешаем LDAP-аутентификацию в разделе Администрирование системы ->Безопасность ->Безопасность системы ->Аутентификация/Настройки CSP-Сессий
10. Разрешаем LDAP-аутентификацию в сервисах. Сервис %Service_CSP отвечает за подключение веб-приложений, сервис %Service_Console отвечает за подключение через терминал.
11. Настраиваем LDAP-аутентификацию в веб-приложениях
ldap admin

12. Пока, чтобы проверить, что подключение работает, настроим так, чтобы новым пользователям в Caché были полные права. Для этого пользователю _PUBLIC надо добавить роль %All. В дальнейшем мы этот момент доработаем…
edit public

13. Пробуем открыть настроенное веб-приложение, оно должно открыться.
14. Терминал также открывается
Cache Terminal

15. При подключении LDAP-пользователи будут появляться в пользователях Caché
ldap admin

16. Правда, при такой конфигурации все новые пользователи получают полный доступ к системе. Чтобы устранить этот пробел, надо в LDAP-базе добавить атрибут, где будем хранить наименование роли, которая будет присваиваться пользователю при подключении к Caché. Предварительно надо сделать резервную копию контроллера домена, чтобы при неудачной настройке не поломать всю сеть.
17. Для модификации схемы ActiveDirectory, на сервере, где находится ActiveDirectory,устанавливаем оснастку Схема ActiveDirectory (по умолчанию она не установлена). Инструкция здесь.
18. Создаем атрибут с именем intersystems-Roles, OID 1.2.840.113556.1.8000.2448.2.3, строка с учетом регистра, многозначный атрибут.
ldap admin

19. Далее добавляем этот атрибут в класс user
ldap admin

20. Далее сделаем, чтобы при просмотре списка пользователей в подразделении отображалась колонка «Роль в InterSystems Cache», для этого нажимаем Пуск->Выполнить вводим adsiedit.msc. Подключаемся к контексту именования Configuration
ldap admin

21. Переходим к контейнеру CN=409, CN=DisplaySpecifiers, CN=Configuration и выбираем тот тип контейнера, при просмотре которого будут выводится дополнительные атрибуты пользователя. Выберем отображение на уровне подразделения (OU), для чего нам понадобится контейнер organisationalUnit-Display. В свойствах находим атрибут extraColumns и вводим там значение «intersystems-Roles,Роль в IntersystemsCache,1,200,0» . Принцип заполнения такой: Название атрибута, название колонки в которой будет отображаться атрибут, будет ли отобраться по умолчанию, ширина колонки в пикселах, зарезервированное значение. Еще замечание CN=409 обозначает код языка: в ветке CN=409 для английской версии, CN=419 для русской версии консоли.
ldap admin

22. Теперь можно заполнить название роли, которое будет присваиваться пользователю при подключении к Caché. Если Active Directory на базе Windows Server 2003, то штатных средств для редактирования этого поля нет. Можно воспользоваться программой ldapAdmin (см. пункт 4) для редактирования значения в этом атрибуте. Если Windows более свежей версии, то атрибут можно редактировать в режиме «Дополнительные функции» — у пользователя появится дополнительная вкладка для редактирования атрибутов.
ldap admin

23. После этого в портале управления Caché в опциях LDAP указываем имя этого атрибута.
ldap admin

24. Создаем роль ldapRole с необходимыми привилегиями
ldap admin

25. Удаляем роль %ALL из пользователя _PUBLIC
26. Всё готово, пробуем подключиться к системе.
27. Если не получается включаем и настраиваем аудит
ldap admin

28. Настройки аудита
ldap admin

29. Просмотр базы данных аудита.
ldap admin

Заключение

На практике часто бывает, что для работы в приложении не требуется настройка разных ролей для разных пользователей. Если достаточно, что при входе, например, в веб-приложение, всем пользователям присваивается определенный набор ролей, то пункты с 16 по 23 можно не выполнять. Достаточно в настройках веб-приложения на вкладке «Роли приложений» добавить эти роли и убрать все виды аутентификации, кроме LDAP. В этом случае в веб-приложение может попасть только пользователь, который зарегистрирован на LDAP-сервере, и когда пользователь в него заходит, Caché автоматически присваивает ему роли, которые требуются для работы в данном приложении.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *