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

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, повторить.

Теги

 

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

Установка IIS в Windows Server 2012 R2

Пришла задача поднять IIS на Windows Server 2012 R2 для CRM BPM Online от Terrasoft. Указанные ниже настройки достаточны для работы данной приблуды. Однако, пришлось также забраться в конфиги данной сторонней системы и кое что править руками. Но это уже не относится к установке IIS и опысываться здесь не будет.

Теги

IIS как обратный прокси-сервер (reverse proxy)

Понадобилось мне как-то раз настроить на IIS 7 прозрачное проксирование запросов из интернета на другой web-сервер, расположенный во внутренней сети. По сути, нужно было настроить IIS 7 как обратный прокси-сервер (reverse proxy). Потом сделал то же самое на IIS 10.

Теги