Перейти к основному содержанию

NextCloud — LDAP/AD интеграция

Nextcloud

NextCloud — это свободное и открытое веб-приложение для синхронизации данных и совместной работы с файлами в стиле Dropbox. Замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища.

Облачные хранилища данных сейчас широко распространены и используются повсеместно для корпоративных и личных нужд.

Сегодня будем настраивать LDAP аутентификацию для NextCloud. Поскольку этот проект отпочковался от OwnCloud, инструкция подойдёт для обоих.

OwnCloud — LDAP/AD интеграция

Документация:

https://docs.nextcloud.com/server/24/admin_manual/configuration_user/user_auth_ldap.html

Подготовка

Для работы LDAP требуется модуль PHP LDAP. Устанавливаем php-ldap. Возможности:

  • Поддержка LDAP групп
  • Расшарить файл пользователю или группе
  • Доступ через WebDAV и Nextcloud Desktop Client
  • Версионность, внешнее хранилище и другие функции Nextcloud
  • Бесшовное соединение с Active Directory без дополнительных настроек
  • Поддержка основных групп в Active Directory
  • Авто-определение атрибутов LDAP (DN, email, и порт LDAP сервера)
  • Только доступ на чтение к LDAP (редактирование и удаление пользователей LDAP не поддерживается)
  • Опционально: Возможность пользователю сменить пароль в LDAP через Nextcloud

На странице приложений включаем "LDAP user and group backend".

Создаём в AD (это моя тестовая структура, ваша может отличаться).

  • Сервисную учётную запись для чтения каталога LDAP:
    • ldap-user
  • Группы доступа пользователям NextCloud:
    • nextcloud-users
    • nextcloud-admins

Настройка LDAP

Переходим под локальным админом NextCloud в Настройки → Параметры сервера → LDAP/AD интеграция.

Сервер

Указываем путь к основному серверу LDAP. Можно использовать LDAP (389 порт по умолчанию) или LDAPS (636 порт по умолчанию). NextCloud может автоматически определить порт соответствующей кнопкой. При необходимости можно добавить несколько серверов.

  • ldaps://ldap.ab.local 636

Указываем имя сервисного пользователя и пароль. Сохранить учётные данные.

  • ldap-user

Определяем основную базу поиска DN. Можно определить основную базу DN кнопкой. В ней будут искаться пользователи, группы, сервисная учётная запись. DN для пользователей и групп потом можно переопределить в дополнительных настройках. При необходимости можно вверси LDAP фильтры вручную. Чем меньше объектов будет обрабатывать NextCloud, тем быстрее будет работать аутентификация и LDAP/AD интеграция. Можно проверить базу поиска DN.

  • OU=Company,DC=domain,DC=local

Продолжить.

nextcloud

Пользователи

Настраиваем критерии, по которым проходит поиск пользователей в AD. Указываем классы объектов.

  • organizationalPerson
  • person
  • user

Выбираем группы, в которых искать пользователей. Группы выбираются из основного DN, или DN пользователей, переопределённый в дополнительных настройках.

  • nextcloud-users
  • nextcloud-admins

Можно проверить настройки и пересчитать пользователей. При необходимости LDAP фильтр можно изменить.

Продолжить.

nextcloud

Учётные данные

Настраиваем учётные данные для входа. Можно входить по логину или по email.

Указываем дополнительный атрибут для входа.

  • sAMAccountName

При необходимости LDAP фильтр можно изменить. Можно проверить настройки и логин пользователя.

Продолжить.

nextcloud

Группы

Настраиваем критерии, по которым проходит поиск групп в AD. Указываем классы объектов.

  • group

Выбираем группы.

  • nextcloud-users
  • nextcloud-admins

Можно проверить настройки и пересчитать группы. При необходимости LDAP фильтр можно изменить.

nextcloud

Дополнительно

Настройки подключения

Здесь можно задать дополнительные опции LDAP.

  • Указать адрес и порт резервного LDAP сервера, которые будут использоваться при недоступности основного.
  • Можно здесь принудительно отключить основной сервер и использовать только резервный.
  • Отключить проверку SSL
  • Указать время хранения кэша, по умолчанию TTL = 600.

nextcloud

Настройка каталога

Здесь можно задать дополнительные опции каталога LDAP.

  • Атрибут отображаемого имени пользователя
  • Атрибут вторичного имени (в скобках), я здесь указываю email
  • DN каталога пользователей
  • Атрибуты поиска пользователей (cn, name). Насчёт mail ещё подумаю.
  • Поле отображаемого имени группы. Кстати, смюню-ка я его на description, а в описаниях групп напишу "Участники NextCloud" и "Администраторы NextCloud".
  • DN каталога групп
  • Атрибуты поиска групп (cn, description)
  • Как искать пользователя в группах: member (AD)
  • URL участников динамической группы. Этого параметра нет в документации. URL для поиска членства в группе.
  • Вложенные группы — да
  • Страничный размер блоков, по умолчанию 500
  • Галка, разрешающая пользователю менять пароль в LDAP.
  • DN парольной политики

nextcloud

Специальные атрибуты

  • Поле квоты — можно задать атрибут пользователя и рулить квотами через LDAP
  • Квота по умолчанию. Ограничить размер диска пользователям. Значение по умолчанию.
  • Поле адреса email, пишу mail
  • Правило именования домашнего каталога пользователя. По умолчанию NextCloud хранит данные так: "/var/www/nextcloud/data/username". Можно изменить на значение из атрибута LDAP.
  • Поле-заполнитель "$home". Нет в документации.

Домашний каталог пользователя должен быть доступен, иначе пользователь не сможет войти в NextCloud.

nextcloud

Можно проверить конфигурацию.

Эксперт

Атрибут для внутреннего имени. Этот атрибут будет использоваться как уникальный идентификатор пользователя для NextCloud. Укажу SAMAccountName.

Также укажу UUID-атрибут для пользователей: objectguid.

Больше ничего здесь не использую.

nextcloud

Можно проверить конфигурацию.

Заключение

Я обычно применяю эти настройки для интеграции AD и NextCloud. Для каждого конкретного случая настройки отличаются.

NextCloud сохраняет изменения в настройках автоматически, при изменении значения поля.

Встречаются баги, например, когда создаёшь группу в AD в процессе настройки, а она не появляется. Это кэш. Закрыть всё, подождать минут 10, повторить.

Теги

 

Похожие материалы

Установка PHP 7.3.1 на IIS 10

Расскажу вам о наиболее оптимальном способе установки PHP на IIS. Ставить будем PHP 7.3.1 на IIS 10. IIS крутится на сервере с Windows Server 2016. Раньше я устанавливал PHP руками, помните, что для Windows нужно выбирать PHP NTS версию. Однако, теперь решил последовать совету с официального сайта. 

Теги

Обновление Drupal 9 до Drupal 10 в Windows

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.