Двухфакторная аутентификация Nextcloud
Общие сведения
В статье описывается настройка двухфакторной аутентификации для системы орга низации рабочего пространства Nextcloud
Nextcloud поддерживает два способа аутентификации: локальная база пользователей или технология единого входа (Single Sign On) по протоколам SAML, Kerberos и другим.
Использование SSO вместе с Мультифактором позволяет использовать единую базу пользователей и централизованно управлять доступом с мультифакторной аутентификацией. При этом локальный вход по-прежнему будет работать для административных целей.
Поскольку Мультифактор не запрашивает и не хранит пароли ваших пользователей, первым фактором аутентификации (логин и пароль), в зависимости от настройки, могут быть:
Active Directory
Yandex
Google
Локальные пользователи Мультифактор (только e-mail)
Другие внешние SAML поставщики учётных записей
Схема работы
- Nextcloud и Мультифактор устанавливают взаимное доверие путем обмена публичными сертификатами и настройкой единого адреса входа (Sigle Sign-On) и единого адреса выхода (Signle Log-Out).
- При запросе на аутентификацию, Nextcloud переадресует пользователя на страницу Мультифактора.
- Мультифактор отправляет пользователя на страницу поставщика учетных записей (Google, Яндекс или Active Directory)
- После подтверждения первого фактора, Мультифактор запрашивает двухфакторную аутентификацию и возвращает подписанный запрос в Nextcloud.
Настройка Мультифактора
- Зайдите в личный кабинет, в разделе "Ресурсы" создайте новый Сайт->SAML приложение:
- Название: произвольное
- Адрес: [опционально] адрес Nextcloud
- Поставщик учетных записей:
Active Directory
— для учетных записей домена Active Directory;Google
— для использования учетных записей Google;Yandex
— для использования учетных записей Яндекса;Только e-mail
— для использования локальных учетных записей Мультифактора (только e-mail, без пароля);Другой
— для использования учетных записей преднастроенных внешних поставщиков в разделе "Настройки" -> "Поставщики учетных записей";
- Адрес портала:
- если выбран поставщик учетных записей Active Directory, то укажите адрес (внешний или внутренний) предварительно настроенного портала самообслуживания Мультифактор;
- Сохраните настройки;
- Сохраните или откройте по ссылке файл из поля 'Метаданные Мультифактора', он понадобится для дальнейшей настройки.
Настройка Nextcloud
Убедитесь, что у вас создан администратор, имеющий доступ через SSO. Вход с использованием локальной учётной записи администратора будет доступен только по ссылке входа вида https://[yournextcloudaddress]/index.php/login?direct=1.
- Зайдите в раздел "Apps", далее "Featured apps", найдите приложение "SSO & SAML authentication", загрузите и установите его.
- Перейдите в раздел "Settings" - "SSO & SAML authentication" и нажмите на кнопку "Use built-in SAML authentication";
- Заполните настройки:
- Only allow authentication if an account exists on some other backend. (e.g. LDAP): установите галочку, если хотите, чтобы в ваше облако заходили только зарегистрированные пользователи;
- Attribute to map the UID to:
uid
; - Optional display name of the identity provider: произвольное;
- Identifier of the IDP entity: ссылка на метаданные Мультифактора из созданного ранее ресурса;
- URL Target of the IDP where the SP will send the Authentication Message: ссылка на метаданные Мультифактора из созданного ранее ресурса +
/login/
; - URL Location of the IDP where the SP will send the SLO Request: ссылка на метаданные Мультифактора из созданного ранее ресурса +
/logout/
; - URL Location of the IDP's SLO Response: оставьте пустым;
- Public X.509 certificate of the IDP: скопируйте из файла метаданных Мультифактора, скачанного ранее, строку между тегами
<X509Certificate>
;
- Скачайте файл с метаданными Nextcloud, нажав на кнопку "Download metadata XML";
- В администраторской панели Мультифактора зайдите в ранее созданный ресурс, нажмите на ссылку "Загрузить метаданные" и прикрепите файл, полученный на шаге 4;
- В случае, если на шаге 3 вы устанавливали галочку "Only allow authentication...", в консоли Nextcloud зайдите в раздел "Users":
- нажмите "New user";
- в поле Username введите почту пользователя, который будет подключаться через SSO, и выберите группы, к которым он будет принадлежать.
Проверка
Не закрывая консоль управления, откройте в приватном режиме браузера ваше облако Nextcloud. Вас сразу перенаправит на страницу авторизации в выбранном провайдере учётных записей. При первом входе у пользователя будет запрошен логин и пароль и будет произведена настройка второго фактора. При последующих входах - логин, пароль и второй фактор.
Для пользователей, которых нет в списке пользователей облака, будет показано предупреждение: "Account not provisioned. Your account is not provisioned, access to this service is thus not possible."