Аутентификация · 5 min read · Dec 30, 2025

Двухфакторная аутентификация для ownCloud

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

автор arnobabotte @pixabay

В этом руководстве я покажу вам, как защитить вашу установку ownCloud с помощью privacyIDEA, которую можно использовать для управления вторыми факторами аутентификации ваших пользователей.

ownCloud — это система для хранения ваших собственных или корпоративных данных не на чужом компьютере (так называемом «облаке»), а на вашем собственном компьютере под вашим контролем. privacyIDEA — это система для управления устройствами аутентификации для двухфакторной аутентификации в вашей собственной сети — не у какого-либо поставщика идентификации — таким образом, сохраняя вашу личность и идентичности ваших пользователей также под вашим контролем.

Если вы хотите узнать, как это будет выглядеть, вы можете заглянуть в это видео на youtube.

Предварительные условия

Я предполагаю, что у вас уже есть работающая система ownCloud 8. Существуют довольно хорошие примеры. Вы также можете ознакомиться с тем, как установить ownCloud 8 с помощью nginx на этом сайте.

Кроме того, я предполагаю, что у вас работает система privacyIDEA. Это руководство не охватывает установку privacyIDEA. Вы также можете найти руководство здесь на Howtoforge для установки privacyIDEA на CentOS или вы можете использовать инструкции по установке в документации.

Обратите внимание: Вам не нужно запускать privacyIDEA и ownCloud на одном сервере. Вы раскроете всю мощь такой настройки, установив privacyIDEA в качестве системы аутентификации на одном сервере и настроив другие приложения, такие как ownCloud, на использование этой privacyIDEA. Это также дает преимущество в том, что вам не нужно управлять устройствами аутентификации для ownCloud, устройствами аутентификации для вашего второго приложения и устройствами аутентификации для вашего третьего приложения и так далее. Вы видите, что это решение демонстрирует свои сильные стороны, если у вас несколько приложений и более двух пользователей. Но, конечно, оно также будет работать в меньших сценариях.

Обратите внимание: Приложение ownCloud privacyIDEA находится на ранней стадии разработки. Поэтому любые отзывы, которые вы предоставите, будут высоко оценены и помогут улучшить этот инструмент. Вы можете оставить отзыв здесь на howtoforge, через проблемы на github или через группу Google.

Подключение privacyIDEA к базе данных ownCloud

Подготовка базы данных

Существует одно условие для privacyIDEA. Пользователи ownCloud должны быть известны privacyIDEA или, наоборот, пользователи, которым вы назначаете токены в privacyIDEA, также должны быть доступны в ownCloud.

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

Обратите внимание: Если вы запускаете privacyIDEA и ownCloud на разных серверах, вам нужно предоставить доступ к SQL базе данных. В случае MySQL/MariaDB вам нужно изменить bind-address в /etc/mysql/my.cnf соответственно, как:

bind-address = 0.0.0.0

Более того, вам нужно добавить права доступа на основе MySQL:

grant all privileges on owncloud.* to "ocuser"@"privacyIDEA-Server" identified by "password";

Теперь пользователь MySQL “ocuser” может получить доступ к базе данных на сервере ownCloud с сервера privacyIDEA.

ПРЕДУПРЕЖДЕНИЕ: Сетевой трафик к серверу MySQL не зашифрован. Мы настоятельно рекомендуем настроить TLS, если вы запускаете этот сценарий. Вы также можете найти некоторые руководства на этом сайте для настройки MySQL с SSL.

Подключение privacyIDEA к ownCloud

Создание разрешителя пользователей

Теперь мы подключаем privacyIDEA к ownCloud, чтобы privacyIDEA знала пользователей. Мы создаем новый разрешитель пользователей в Config → Users.

Вы можете нажать кнопку ownCloud, которая должна предустановить все необходимые поля в сопоставлении атрибутов базы данных.

Затем вы можете нажать Test SQL Resolver, чтобы увидеть, все ли прошло хорошо.

Создание области

Теперь вы можете перейти в Config → Realms, чтобы создать область по умолчанию из разрешителя.

Теперь вы должны увидеть пользователей ownCloud на вкладке Users и иметь возможность зарегистрировать токены для этих пользователей.

Регистрация Google Authenticator

privacyIDEA поддерживает широкий спектр токенов, которые вы можете найти здесь.

Мы быстро зарегистрируем Google Authenticator в качестве простого примера.

Перейдите в представление пользователей и выберите пользователя, чтобы увидеть его данные. Здесь вы можете нажать кнопку Enroll New Token.

В диалоговом окне регистрации вы можете выбрать тип токена, и в зависимости от типа токена вам нужно будет ввести разные данные. Но в этом примере мы используем тип токена по умолчанию HOTP. Внизу страницы вы можете ввести OTP PIN.

Нажмите Enroll Token.

Токен зарегистрирован, и вам представлен QR-код, который вы можете отсканировать с помощью вашего приложения Google Authenticator.

Другие типы токенов регистрируются другими способами, что выходит за рамки этого руководства. Для получения дополнительной информации смотрите документацию privacyIDEA.

Теперь мы закончили, так как у пользователя ownCloud есть назначенный токен. Вы можете повторить этот процесс для других пользователей ownCloud.

Получение приложения ownCloud

Сначала вам нужно скачать приложение ownCloud privacyIDEA.

Вы можете скачать приложение здесь. Вам нужно скопировать директорию user_privacyidea в вашу директорию ownCloud apps/. Предположим, вы установили ownCloud в /var/www/owncloud, так что у вас будет структура, похожая на

root@owncloud:~# ls /var/www/owncloud/apps/user_privacyidea/ -l  
 -rw-rw-r-- 1 root root 1671 Jun 25 15:05 adminSettings.php  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 appinfo  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 img  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 js  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 lib  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 templates

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

Настройка приложения ownCloud

Перейдите в Apps → not Enabled и включите приложение.

Затем вы можете перейти в Ваш пользователь → Админ, чтобы настроить приложение privacyIDEA.

Вам нужно указать URL сервера privacyIDEA. Вы должны запускать сервер privacyIDEA с доверенным сертификатом. Если во время процесса настройки у вас нет доверенного сертификата, вы можете снять отметку с флажка Verify the SSL certificate of the privacyIDEA server.

Чтобы избежать блокировки, вы можете установить флажок Также разрешить пользователям аутентифицироваться с помощью их обычного пароля. В этом случае, если аутентификация в privacyIDEA не удалась, пользователь будет аутентифицирован против основного бэкенда пользователей ownCloud. В продуктивном использовании вы должны снять этот флажок.

Клиенты рабочего стола, конечно, будут иметь проблемы с одноразовыми паролями. Если вы используете такие клиенты, вы должны установить флажок Allow API access to remote.php with static password. В этом случае запрос аутентификации, поступающий от клиента рабочего стола (определяемого по remote.php), не будет аутентифицирован против privacyIDEA, а против основного бэкенда пользователей.

Наконец, если все в порядке, вы можете активировать двухфакторную аутентификацию, установив флажок Use privacyIDEA to authenticate the users.

Вход в ownCloud

После активации приложения privacyIDEA экран входа в ownCloud не изменится.

Чтобы войти, вам нужно ввести ваше имя пользователя, а в поле пароля вам нужно ввести OTP PIN и значение OTP, сгенерированное вашим Google Authenticator.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.