С одной стороны настройка LDAP-аутентификации в Caché не очень сложная — в документации этот процесс описан шестью пунктами. С другой стороны если LDAP-сервер на базе Microsoft Active Directory, то есть несколько не очевидных моментов, которые надо настроить на стороне LDAP-сервера. Так же для тех, кто не часто занимается подобными настройками, есть шанс запутаться в настройках безопасности Caché. В этой статье пошагово опишем процесс настройки LDAP-аутентификации, а также методы диагностики проблем в случае, если что-то не получается.
Настройка LDAP-сервера
1. Создаем пользователя в ActiveDirectory, с помощью которого будет подключаться Caché и искать информацию в базе LDAP. Этот пользователь должен находиться строго в корне домена
2. Для пользователей, которые будут подключатся к Caché, создадим отдельное подразделение. Назовем его «IdapCacheUsers»
3. Регистрируем там пользователей
4. Протестируем доступность LDAP-базы с помощью программы ldapAdmin. Скачать ee можно здесь.
5. Настраиваем подключение к LDAP-серверу:
6. Подключились. Посмотрели, что всё работает:
7. Так как пользователи, которые будут подключаться к Caché, находятся в подразделении «ldapCacheUsers», ограничим поиск только по этому подразделению
Настройка на стороне Caché
8. LDAP-сервер готов, теперь переходим к настройкам на стороне Caché. Заходим в портал управления -> Администрирование системы ->Безопасность ->Безопасность системы ->Опции LDAP. Поля «Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default namespace)» ,«Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default routine)» и«Атрибут пользователь для получения ролей (User attribute to retrieve roles)» очищаем, так как этих атрибутов пока нет в LDAP-базе.
9. Разрешаем LDAP-аутентификацию в разделе Администрирование системы ->Безопасность ->Безопасность системы ->Аутентификация/Настройки CSP-Сессий
10. Разрешаем LDAP-аутентификацию в сервисах. Сервис %Service_CSP отвечает за подключение веб-приложений, сервис %Service_Console отвечает за подключение через терминал.
11. Настраиваем LDAP-аутентификацию в веб-приложениях
12. Пока, чтобы проверить, что подключение работает, настроим так, чтобы новым пользователям в Caché были полные права. Для этого пользователю _PUBLIC надо добавить роль %All. В дальнейшем мы этот момент доработаем……
13. Пробуем открыть настроенное веб-приложение, оно должно открыться.
14. Терминал также открывается
15. При подключении LDAP-пользователи будут появляться в пользователях Caché
16. Правда, при такой конфигурации все новые пользователи получают полный доступ к системе. Чтобы устранить этот пробел, надо в LDAP-базе добавить атрибут, где будем хранить наименование роли, которая будет присваиваться пользователю при подключении к Caché. Предварительно надо сделать резервную копию контроллера домена, чтобы при неудачной настройке не поломать всю сеть.
17. Для модификации схемы ActiveDirectory, на сервере, где находится ActiveDirectory, устанавливаем оснастку Схема ActiveDirectory (по умолчанию она не установлена). Инструкция здесь.
18. Создаем атрибут с именем intersystems-Roles, OID 1.2.840.113556.1.8000.2448.2.3, строка с учетом регистра, многозначный атрибут.
19. Далее добавляем этот атрибут в класс user
20. Далее сделаем, чтобы при просмотре списка пользователей в подразделении отображалась колонка «Роль в InterSystems Cache», для этого нажимаем Пуск->Выполнить вводим adsiedit.msc. Подключаемся к контексту именования Configuration
21. Переходим к контейнеру CN=409, CN=DisplaySpecifiers, CN=Configuration и выбираем тот тип контейнера, при просмотре которого будут выводится дополнительные атрибуты пользователя. Выберем отображение на уровне подразделения (OU), для чего нам понадобится контейнер organisationalUnit-Display. В свойствах находим атрибут extraColumns и вводим там значение «intersystems-Roles, Роль в IntersystemsCache,1,200,0». Принцип заполнения такой: Название атрибута, название колонки в которой будет отображаться атрибут, будет ли отобраться по умолчанию, ширина колонки в пикселах, зарезервированное значение. Еще замечание CN=409 обозначает код языка: в ветке CN=409 для английской версии, CN=419 для русской версии консоли.
22. Теперь можно заполнить название роли, которое будет присваиваться пользователю при подключении к Caché. Если Active Directory на базе Windows Server 2003, то штатных средств для редактирования этого поля нет. Можно воспользоваться программой ldapAdmin (см. пункт 4) для редактирования значения в этом атрибуте. Если Windows более свежей версии, то атрибут можно редактировать в режиме «Дополнительные функции» — у пользователя появится дополнительная вкладка для редактирования атрибутов.
23. После этого в портале управления Caché в опциях LDAP указываем имя этого атрибута.
24. Создаем роль ldapRole с необходимыми привилегиями
25. Удаляем роль %ALL из пользователя _PUBLIC
26. Всё готово, пробуем подключиться к системе.
27. Если не получается включаем и настраиваем аудит
28. Настройки аудита
29. Просмотр базы данных аудита.
Заключение
На практике часто бывает, что для работы в приложении не требуется настройка разных ролей для разных пользователей. Если достаточно, что при входе, например, в веб-приложение, всем пользователям присваивается определенный набор ролей, то пункты с 16 по 23 можно не выполнять. Достаточно в настройках веб-приложения на вкладке «Роли приложений» добавить эти роли и убрать все виды аутентификации, кроме LDAP. В этом случае в веб-приложение может попасть только пользователь, который зарегистрирован на LDAP-сервере, и когда пользователь в него заходит, Caché автоматически присваивает ему роли, которые требуются для работы в данном приложении.
Автор: Vassil2010