Инструкция по интеграции Nextcloud с контроллером домена Samba AD

В современных IT-инфраструктурах единая точка аутентификации — это не просто удобство, а необходимость. Когда пользователи работают с десятками сервисов, повторный ввод паролей в каждом из них быстро превращается в проблему: растёт нагрузка на службу поддержки, появляются слабые и дублирующиеся пароли, а администратор теряет контроль над доступом.

💡 Присоединяйтесь к нашим сообществам!

Будьте в курсе новых статей, обновлений и полезных материалов:

MAXMAX TelegramTelegram VKВКонтакте DzenДзен RuTubeRuTube

Ранее мы уже настроили Nextcloud и контроллер домена на базе Samba AD DC.

Nextcloud — популярная open-source платформа для совместной работы с файлами и данными — поддерживает интеграцию с каталогом LDAP/LDAPS, что позволяет связать его с контроллером домена на базе Samba AD.

Настроим аутентификацию пользователей Nextcloud через Samba AD DC по протоколу LDAPS, обеспечив защищённое соединение и централизованное управление учётными записями.

Технические характеристики развертывания:

**Важно:** Samba AD по умолчанию требует защищенного соединения для LDAP-операций. Мы будем использовать протокол **LDAPS (порт 636)**, что является стандартом безопасности.

1. Подготовка контроллера домена (Samba AD DC)

Для безопасного соединения серверу Nextcloud необходимо доверять сертификату контроллера домена.

Получаем открытый ключ центра сертификации (CA) Samba.

  1. Подключаемся к контроллеру домена по SSH под пользователем root.
  2. Выводим содержимое файла корневого сертификата:
cat /var/lib/samba/private/tls/ca.pem
  1. Копируем весь вывод (от -----BEGIN CERTIFICATE----- до -----END CERTIFICATE-----) в буфер обмена.

2. Подготовка сервера Nextcloud

На сервере с Nextcloud необходимо установить необходимые PHP-модули и добавить сертификат Samba в список доверенных.

  1. Подключаемся к серверу Nextcloud по SSH под пользователем root.
  2. Устанавливаем необходимые пакеты (если они еще не установлены):
apt-get update
apt-get install -y php-ldap ldap-utils
  1. Создаём директорию для пользовательских сертификатов:
mkdir -p /usr/local/share/ca-certificates/samba
  1. Создаём и открываем на редактирование файл для сертификата:
mcedit /usr/local/share/ca-certificates/samba/itsch-ca.crt
  1. Вставляем скопированное на Шаге 1 содержимое сертификата. Сохраняем файл F2, закрываем редактор F10.
  2. Обновляем хранилище доверенных сертификатов в системе:
update-ca-certificates

Должно появиться сообщение вида 1 added, 0 removed; done.

  1. Перезапускаем веб-сервер для применения изменений в PHP:
systemctl restart apache2

3. Создание и настройка конфигурации LDAP через консоль

Настройка через веб-интерфейс Nextcloud часто приводит к ошибкам из-за экранирования специальных символов (например, $ в пароле) или проблем с определением базового DN. Настройка через консольную утилиту occ является наиболее надежной.

  1. Переходим в корневую директорию Nextcloud (у нас это /var/www/html):
cd /var/www/html
  1. Создаём новую пустую конфигурацию LDAP. Система присвоит ей идентификатор (обычно s01):
php occ ldap:create-empty-config
  1. Последовательно выполняем следующие команды для настройки параметров.
**Внимание:** В команде с паролем (`ldapAgentPassword`) обязательно используйте **одинарные кавычки** `'...'`, чтобы специальные символы (например, `$`) не были интерпретированы оболочкой Bash как переменные.
  1. Указываем хост с обязательным префиксом ldaps://
php occ ldap:set-config s01 ldapHost "ldaps://192.168.0.11"
  1. Указываем порт LDAPS
php occ ldap:set-config s01 ldapPort "636"
  1. Указываем учетную запись для подключения к LDAP (Bind DN)
php occ ldap:set-config s01 ldapAgentName "CN=Administrator,CN=Users,DC=itsch,DC=lan"
  1. Указываем пароль
php occ ldap:set-config s01 ldapAgentPassword 'НАШ_ПАРОЛЬ'
  1. Указываем базовый DN для поиска
php occ ldap:set-config s01 ldapBase "DC=itsch,DC=lan"
php occ ldap:set-config s01 ldapBaseUsers "DC=itsch,DC=lan"
php occ ldap:set-config s01 ldapBaseGroups "DC=itsch,DC=lan"
  1. Настраиваем фильтры (исключаем компьютеры, оставляем только пользователей и группы)
php occ ldap:set-config s01 ldapUserFilter "(&(objectclass=person)(objectclass=user)(!(objectclass=computer)))"
php occ ldap:set-config s01 ldapGroupFilter "(&(objectclass=group))"
php occ ldap:set-config s01 ldapLoginFilter "(&(objectclass=person)(objectclass=user)(sAMAccountName=%uid))"
  1. Указываем атрибуты для отображения и входа
php occ ldap:set-config s01 ldapExpertUsernameAttr "sAMAccountName"
php occ ldap:set-config s01 ldapUserDisplayName "displayName"
php occ ldap:set-config s01 ldapEmailAttribute "mail"
  1. Разрешаем игнорирование проверки сертификата (на случай нюансов с самоподписанным сертификатом Samba)
php occ ldap:set-config s01 turnOffCertCheck "1"
  1. Активируем конфигурацию
php occ ldap:set-config s01 ldapConfigurationActive "1"

4. Проверка конфигурации

После внесения настроек необходимо проверить, может ли Nextcloud подключиться к контроллеру домена и найти пользователей.

  1. Проверяем статус подключения:
php occ ldap:test-config s01

Ожидаемый результат: The configuration is valid and the connection could be established!

  1. Проверяем, видит ли Nextcloud конкретного пользователя:
php occ ldap:check-user usertest

Ожидаемый результат: Сообщение об успехе или информация о том, что пользователь найден.

5. Финальная настройка через веб-интерфейс

Хотя основная настройка выполнена через консоль, веб-интерфейс удобен для визуальной проверки и тонкой настройки отображения.

  1. Открываем веб-интерфейс Nextcloud под учетной записью глобального администратора.
  2. Переходим в Параметры сервера → Администрирование → LDAP/AD интеграция.

Параметры сервера

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

  1. Если все настройки верны, то при нажатии на кнопку “Проверить конфигурацию“ появится индикатор зелёного цвета и надпись "Конфигурация настроена верно. Связь установлена!”

Проверка конфигурации

6. Первый вход пользователя и важные примечания

  1. Открываем страницу входа Nextcloud (рекомендуется использовать режим инкогнито в браузере).
  2. Вводим логин доменного пользователя (значение атрибута sAMAccountName, например, usertest) и его доменный пароль.

Как работает создание пользователей в Nextcloud:

Заключение

Интеграция Nextcloud с контроллером домена Samba AD настроена. Пользователи домена могут входить в Nextcloud, используя свои доменные учётные записи, а при первом входе автоматически создаются связанные локальные профили. Управление доступом теперь осуществляется централизованно — через Active Directory. При удалении пользователя из домена его учётная запись в Nextcloud будет автоматически отключена при следующей синхронизации.

🚀 Понравилась статья?

Подписывайтесь на наши соцсети чтобы не пропустить новые полезные материалы!

MAXMAX TelegramTelegram VKВКонтакте DzenДзен RuTubeRuTube