В статье Настройка LDAP+Samba, LDAP клиента с переносимым профилем мы настроили наш LDAP сервер, теперь, для того чтобы пользователи могли управлять своими файлами вне зависимости от места нахождения, мы установим Owncloud сервер и позволим пользователям добавлять файлы прямо с рабочего стола.
Что же такое Owncloud, Википедия гласит:
ownCloud — это Свободное и открытое веб-приложение для синхронизации данных, расшаривания файлов и удалённого хранения документов в «облаке».
Возможности:
- Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV
- Криптография
- Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux
- Календарь (также как CalDAV)
- Планировщик задач
- Адресная книга (также как CardDAV)
- Потоковое мультимедиа (используется Ampache)
- Администрирование пользователей и групп (с использованием OpenID или LDAP)
- Расшаривание контента между группами или используя публичные URL
- Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием
- Закладки
- Механизм сокращения URL
- Фотогалерея
- Просмотрщик PDF (используется PDF.js)
- Просмотрщик ODF файлов (.odt, .odp, .ods)
- Модуль логирования
Приступим к установке, для работы owncCloud нам потребуется настроить Веб-сервер, Сервер баз данных.
Как это сделать, я рассказывал ранее в статье Установка apache2 mysql php5 в ubuntu помимо стандартных пакетов так же ставим следующие пакеты:
- PHP (>= 5.3.3 minimum, 5.4 or higher recommended)
- PHP module ctype
- PHP module dom
- PHP module GD
- PHP module iconv
- PHP module JSON
- PHP module libxml
- PHP module mb multibyte
- PHP module SimpleXML
- PHP module zip
- PHP module zlib
- PHP module mysql
Далее скачиваем архив с установщиком ownCloud, распаковываем и переносим все в каталог нашего домена
cd /tmp
wget http://download.owncloud.org/community/owncloud-6.0.1.tar.bz2
tar -xjf owncloud-6.0.1.tar.bz2
cp -R owncloud/* /var/www/example.com/
Так же нам необходимо обеспечить доступ к файлам с рабочего стола, делаем символьную ссылку из директории ownCloud к нашим каталогам пользователя
ln -s /domain/home /var/www/example.com/data
После чего переходим в браузере по адресу нашего домена, далее будет простой, стандартный этап инсталяции, установщик предложит ввести логин и пароль администратора, а так же предложит выбрать какой тип баз данных использовать, я выбрал MySQL по причине того, что SQlite у меня как-то подтормаживал, а заниматься его тюнингом не было никакого желания.
После установки заходим в веб панель, путем нажатия в левом нижнем углу следующей иконки:
и устанавливаем приложение LDAP user and group backend, затем переходим в панель администратора (раскрывающийся список под именем пользователя в верхнем правом углу).
Теперь настроим авторизацию пользователей через LDAP (далее сокращенный вольный перевод документации с сайта owncloud.org)
Настройка подключения к серверу довольно проста, нам будут видно четыре вкладки, первая вкладка является основной. её нужно заполнить обязательно, остальные вкладки заполнятся автоматически, но в любом случае необходимо проверить правильность заполнения, кроме того если сервер не позволяет анонимную аутентификацию и поиск по базе LDAP. необходимо создать пользователя специально для ownCloud который сможет осуществлять поиск в базе LDAP
Первая вкладка Server
Настройки:
Конфигурация сервера:
ownCloud может быть настроен на соеденение с несколькими LDAP серверами, добавить сервер нажав на раскрывающийся список и выбрав New Server Configuration, удалить сервер можно кнопкой Delete Configuration
Host:
Здесь указывается хост LDAP сервера, я указал IP адрес по причине того, что даже в случае недоступности DNS сервера, местонахождение сервера будет известно. Так же можно указать ldaps:// URI, если используется защищенное соединение.
Здесь же можно указать и имя порта, особенно если LDAP находится на не стандартном порту, это ускорит соединение и конфигурацию.
Примеры:
directory.my-company.com
ldaps://directory.my-company.com
directory.my-company.com:9876
Port:
В этом поле указывается порт по которому необходимо соединяться с LDAP сервером. При начальной конфигурации это поле недоступно для ввода. Поле будет заполнено автоматически, если LDAP сервер запущен на стандартном порту. После попытки ownCloud определить порт, ввод в поле будет разрешен. После нахождения порт будет добавлен в конфигурацию ownCloud.
Вообще не понял зачем это делать. если выше мы можем руками указать порт, видимо чем больше полей, тем лучше, считал разработчик апплета :)
Пример:
389
User DN:
Указывается DN пользователя кто может осуществлять поиск по LDAP. Если есть анонимный доступ, можно оставить пустым. Все таки рекомендуется завести специального пользователя для ownCloud с правами поиска по каталогам LDAP .
Пример:
uid=owncloudsystemuser,cn=sysusers,dc=my-company,dc=com
Password:
Указываем пароль для пользователя выше
Base DN:
Указываем базовый DN, где можно получить информацию о пользователях. Раздельные базовые DN для пользователей и груп могут быть настроены позже в разделе продвинутых (тонких) настроек. Это поле обязательное для заполнения. ownCloud будет пытаться соединиться с LDAP по указанному базовому DN и указанному DN пользователя, в соответствии с указанным хостом.
Пример:
dc=my-company,dc=com
Login Filter
В этом разделе настроек указываем каким пользователям LDAP можно осуществлять вход в ownCloud. Так же это можно указать строкой.
only those object classes:
ownCloud определит классы объектов которые типичны для пользователей LDAP. ownCloud автоматически выберет классы объектов которые вернут большее количество пользователей. При необходимости, можно выбрать и больше классов.
only from those groups:
Если LDAP сервер поддерживает member-of-overlay в LDAP фильтрах, можно определить пользователи каких групп могут подключаться к ownCloud. По умолчанию значений выбрано не будет. При необходимости можно выбрать несколько групп.
Иначе поле будет заблокировано.
Edit raw filter instead:
Нажатие на это поле включит текстовую фильтрацию. Можно настроить LDAP прямо из этого поля.
Пример:
objectClass=inetOrgPerson
x users found:
Это поле покажет приблизительно сколько пользователей имеют доступ к ownCloud. После изменений количество обновится.
Login Filter
В этом фильтре будут определены аттрибуты пользователя необходимые для входа.Можно выбирать несколько. Можно настроить через строчный фильтр LDAP.
LDAP Username:
Если поле выбрано, то аутентификация пользователя в ownCloud будет происходить по имени пользователя
LDAP Email Address:
Если выбрано это поле, то аутентификация в ownCloud будет происходить по Email пользователя
Other Attributes:
В этом поле можно выбрать другие атрибуты для сравнения и последующей аутентификации. Список будет сгенерирован исходя из записей LDAP сервера
Group Filter
В этих настройках определяются группы пользователей которым разрешено логиниться в ownCloud.
По умолчанию, всем группам запрещен вход в ownCloud. Нужно разрешить группы.
only those object classes:
ownCloud определит классы объектов, которые типичны для LDAP групп. ownCloud только определит список, выбор нужно будет сделать в ручную. Можно будет выбрать несколько. Типичные классы объектов “group” или “posixGroup”.
only from those groups:
Здесь выбираем группы у которых есть доступ к ownCloud. Это поле является белым листом групп. ownCloud выведет список групп найденных в LDAP. Можно выбрать несколько
Special Attributes
Здесь интересно только поле
User Home Folder Naming Rule:
по умолчанию дирректория пользователя будет создаваться согласно uid, что-то вроде 72fd02c8-1aef-1033-8a59-43679a97b525, так как нам нужно чтобы пользователь имел доступ к своим файлам, соответственно имя директории должно соответствовать cn пользователя в LDAP, таким образом указав в поле cn, мы даем понять ownCloud, что все вновь создаваемые директории должны иметь имя пользователя.
Вот и всё, всё должно работать.
В случае с AD пришлось иначе указать пользователя с правами просмотра каталогов:
cn=ownclouduser,ou=Users,dc=example,dc=com
И еще нужно установить модуль ldap для php
А так — спасибо за статью