OGOwnGate

Корпоративное облако без паролей: подключаем Nextcloud к шлюзу доступа

Плагин user_ldap в Nextcloud обожает зависать при синхронизации и генерировать фантомные дубликаты пользователей. Разбираем, как перевести корпоративное файловое хранилище на чистый OIDC через OwnGate и решить проблему безопасного доступа раз и навсегда.

Бесшовный SSO контур для Nextcloud

Если вы когда-нибудь настраивали модуль user_ldap в Nextcloud для компании больше 50 человек, у вас наверняка дергается глаз при словах «фоновый крон синхронизации».

Типичный жизненный цикл Nextcloud с прямым подключением к Active Directory выглядит так:

1. Вы тщательно вылизываете LDAP-фильтры: (&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))).

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

3. Через три месяца сотрудница из финотдела выходит замуж и меняет фамилию в паспорте и домене.

4. Nextcloud теряет связь с её старым UUID, создаёт рядом вторую папку вида ivanova_1928, а старые файлы и права расшаривания превращаются в цифровую тыкву.

5. А по ночам команда occ ldap:sync методично кладёт базу данных MariaDB на лопатки, пытаясь пересчитать членство в сотне вложенных групп домена.

Хватит это терпеть. Давайте разберём, как выкинуть архаичный плагин LDAP и подключить Nextcloud к современному шлюзу доступа по протоколу OpenID Connect (OIDC).

---

Почему OIDC выигрывает у прямого LDAP в Nextcloud

| Параметр | Старый плагин user_ldap | Современный user_oidc через OwnGate |

|---|---|---|

| Нагрузка на базу | Постоянные сканирования каталога и раздувание таблиц oc_ldap_* | Ноль фоновых запросов. Данные передаются в JWT-токене при входе |

| Второй фактор (2FA) | Требует настройки плагинов 2FA внутри Nextcloud для каждого юзера | Централизованно на шлюзе доступа для всех систем компании |

| Мобильные и десктоп клиенты | Хранят локальный пароль или требуют ручной генерации App Passwords | Нативный OAuth2 Authorization Flow через системный браузер |

| Увольнение сотрудника | Сессии в Nextcloud могут жить неделями до следующего цикла проверки | Мгновенный отзыв сессий и токенов по сигналу шлюза |

---

Пошаговая настройка Nextcloud + OwnGate

Шаг 1. Включаем официальное приложение user_oidc

В современных версиях Nextcloud (Nextcloud Hub 25+) используется официальный легковесный модуль user_oidc:


sudo -u www-data php occ app:install user_oidc

sudo -u www-data php occ app:enable user_oidc

Шаг 2. Регистрируем клиент в шлюзе OwnGate

В административной панели OwnGate создаём клиентское приложение:

  • Client Identifier: nextcloud-prod
  • Redirect URI: https://cloud.company.local/apps/user_oidc/code
  • Scopes: openid, profile, email, groups

Шаг 3. Регистрируем провайдера в Nextcloud

Вместо блуждания по веб-интерфейсу выполняем одну чистую команду через консоль occ:


sudo -u www-data php occ user_oidc:provider owngate \

  --clientid="nextcloud-prod" \

  --clientsecret="super-secret-token-from-owngate" \

  --discoveryuri="https://auth.company.local/.well-known/openid-configuration" \

  --scope="openid profile email groups"

Nextcloud сам скачивает метаданные шлюза по адресу .well-known/openid-configuration, находит публичные ключи для проверки подписи JWT (JWKS) и настраивает адреса авторизации.

Шаг 4. Настраиваем маппинг групп и атрибутов

В панели администратора Nextcloud (Параметры безопасности -> OpenID Connect) связываем поля:

  • User ID mapping: preferred_username (или неизменяемый sub из шлюза, чтобы смена фамилии никогда не ломала пути к файлам);
  • Display name mapping: name;
  • Email mapping: email;
  • Groups mapping: groups.

Теперь сотрудники из доменной группы Designers при входе автоматически попадают в группу Designers в Nextcloud, получая доступ к общим проектным папкам без единого ручного клика сисадмина.

---

А как же мобильные приложения и WebDAV?

Это главный вопрос, который пугает инженеров: *«Если мы отключим пароли, как люди будут синхронизировать файлы на телефонах и подключать папки по WebDAV?»*.

Nextcloud Client (для Windows, macOS, Linux, iOS и Android) полностью поддерживает OAuth2 Authorization Code Flow с PKCE:

1. Пользователь открывает клиент и вводит адрес https://cloud.company.local;

2. Клиент автоматически открывает браузер с окном шлюза OwnGate;

3. Пользователь вводит корпоративный логин, пароль и одноразовый код TOTP;

4. Шлюз возвращает клиенту защищённый Refresh Token.

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

Отказ от прямого LDAP в пользу централизованного шлюза превращает капризное корпоративное облако в надёжный, быстрый и безопасный инструмент для всей компании.

← Все статьи