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

Двухфакторная аутентификация Nextcloud

Общие сведения

В статье описывается настройка двухфакторной аутентификации для системы организации рабочего пространства Nextcloud

Nextcloud поддерживает два способа аутентификации: локальная база пользователей или технология единого входа (Single Sign On) по протоколам SAML, Kerberos и другим.

Использование SSO вместе с Мультифактором позволяет использовать единую базу пользователей и централизованно управлять доступом с мультифакторной аутентификацией. При этом локальный вход по-прежнему будет работать для административных целей.

Поскольку Мультифактор не запрашивает и не хранит пароли ваших пользователей, первым фактором аутентификации (логин и пароль), в зависимости от настройки, могут быть:

  • Active Directory
  • Yandex
  • Google
  • Локальные пользователи Мультифактор (только e-mail)
  • Другие внешние SAML поставщики учётных записей

Схема работы

  1. Nextcloud и Мультифактор устанавливают взаимное доверие путем обмена публичными сертификатами и настройкой единого адреса входа (Sigle Sign-On) и единого адреса выхода (Signle Log-Out).
  2. При запросе на аутентификацию, Nextcloud переадресует пользователя на страницу Мультифактора.
  3. Мультифактор отправляет пользователя на страницу поставщика учетных записей (Google, Яндекс или Active Directory)
  4. После подтверждения первого фактора, Мультифактор запрашивает двухфакторную аутентификацию и возвращает подписанный запрос в Nextcloud.

Настройка Мультифактора

  1. Зайдите в личный кабинет, в разделе "Ресурсы" создайте новый Сайт->SAML приложение:
  • Название: произвольное
  • Адрес: [опционально] адрес Nextcloud
  • Поставщик учетных записей:
    • Active Directory для учетных записей домена Active Directory;
    • Google для использования учетных записей Google;
    • Yandex для использования учетных записей Яндекса;
    • Только e-mail для использования локальных учетных записей Мультифактора (только e-mail, без пароля);
    • Другой для использования учетных записей преднастроенных внешних поставщиков в разделе "Настройки" -> "Поставщики учетных записей";
  • Адрес портала:
  1. Сохраните настройки;
  2. Сохраните или откройте по ссылке файл из поля 'Метаданные Мультифактора', он понадобится для дальнейшей настройки.

Настройка Nextcloud

Внимание

Убедитесь, что у вас создан администратор, имеющий доступ через SSO. Вход с использованием локальной учётной записи администратора будет доступен только по ссылке входа вида https://[yournextcloudaddress]/index.php/login?direct=1.

  1. Зайдите в раздел "Apps", далее "Featured apps", найдите приложение "SSO & SAML authentication", загрузите и установите его.

  2. Перейдите в раздел "Settings" - "SSO & SAML authentication" и нажмите на кнопку "Use built-in SAML authentication";

  3. Заполните настройки:

    • 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>;
  4. Скачайте файл с метаданными Nextcloud, нажав на кнопку "Download metadata XML";

  5. В администраторской панели Мультифактора зайдите в ранее созданный ресурс, нажмите на ссылку "Загрузить метаданные" и прикрепите файл, полученный на шаге 4;

  6. В случае, если на шаге 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."