Заметка о том как настроить авторизацию в MS Active Directory для сервиса owncloud.
Если Вам выпала честь организовать owncloud в корпоративной среде с Active Directory, надеюсь эта заметка Вам пригодится.
Установку owncloud я уже (описывал)[http://jnotes.ru/centos7-nginx-owncloud.html], причем (не один раз)[http://jnotes.ru/owncloud-server-setup.html].
Поэтому все внимание настройке авторизации в AD.
Для начала надо убедиться, что установлен необходимый пакет php-ldap
.
rpm -qa | grep php-ldap
или dpkg -l | grep php5-ldap
в зависимости от Ваших предпочтений.
После этого включаю официальное приложение «LDAP user and group backend». Это можно сделать через web интерфейс в разделе «Apps» или командой
#sudo -u apache php occ app:enable user_ldap
из DOCUMENT_ROOT owncloud
Кстати, рекомендую ознакомится с функционалом консольной команды occ.
После этого можно приступать непосредственно к настройке, которая осуществляется через web интерфейс в разделе «Admin»
Настройка LDAP user and group backend 0.7.1 выглядит следующим образом
Server
Настройки для сервера стандартные:
- сервер AD
- пользователь с правами на чтение каталога
- пароль пользователя
- Base DN для поиска пользователей
- on/off ручное редактирование фильтров
Users
Здесь задается фильтр пользователей, которые будут смогут авторизовываться в owncloud. В моем случае это:
(|(&(objectclass=person)(memberOf=CN=dit_oiti,OU=Groups,OU=MyOU,DC=domain,DC=local))(&(objectclass=person)(memberOf=CN=dit_adm_on_duty,OU=Groups,OU=MyOU,DC=domain,DC=local)))
Login Attributes
Как я понял по задумке эти два фильтра должны друг друга дополнять, но по факту это не так. При тестировании выяснилось, что фильтр в «Users» не влияет на фильтр в «User attributes», что странно.
Так или иначе, я сделал фильтры одинаковыми с тем отличием, что в «User attributes» обязательно нужно указать sAMAccountName=%uid
, или другое поле, куда будут подставляться данные с формы логина owncloud.
Groups
Во вкладке «Groups» можно задать фильтр, на основании которого будет формироваться список групп пользователей owncloud. Я пока тут ничего не трогал.
Advanced
Connection Settings
Тут можно настроить резервный сервер. По аналогии с основным.
User Display Name Field — какое поле из AD использовать для отображения полного имени пользователей
Base User Tree — НЕВАЖНО что записано в Base DN в основных настройках. owncloud смортит сюда. Вот так поворот =)
User Search Attributes — по каким полям осуществлять поиск пользователей. Очень полезная штука. По умолчанию, например при шаре файла пользователя можно найти его автодополнением по полному имени, но нельзя найти по логину. Именно тут это можно пофиксить.
Далее идут аналогичные настройки для групп, затем специфичные настройки для групп, настройки вложенности групп и ограничения поиска по каталогу.
Special Attributes
Quota Field — поле в AD со значением квоты на хранилище для пользователя
Quota Default — значение квоты по умолчанию в байтах
Email Field — поле в AD со значением email адреса пользователя
User Home Folder Naming Rule — правило именования директории пользователя. По умолчанию это username. Обращаю внимание, что это означает UUID.
Expert
Internal Username Attribute — по какому полю генерировать внутренние уникальные идентификаторы пользователей. По умолчанию это UUID. И именно UUID и отображаетсся при просмотре списка пользователей.
UUID Attribute for Users — Служит для того, что бы переписать отображение UUID на более удобночитаемое поле, например sAMAccountName.
UUID Attribute for Groups — Аналогично для групп
И последнее очищение маппинга Ползователей и Групп.
Обращаю внимание, что на скриншоте в общем случае не корректная запись, которая появилась в результате экспериментов. Я точно уверен, что в моем случае sAMAccountName
— уникальное поле, что в общем случае может быть не так.
Правильно sAMAccountName
прописать в UUID Attribute for Users
, а Internal Username Attribute
оставить как есть — UUID
На этом настройка окончена. Буду рад, если Вам эта заметка пригодилась.