Настройка двухфакторной аутентификации NextCloud


Avanpost FAM обеспечивает 2FA/MFA/SSO для пользователей, выполняющих аутентификацию в веб-платформу NextCloud, предназначенную для организации облачного хранилища.  В инструкции описывается настройка 2FA/MFA/SSO для NextCloud посредством механизма OpenID Connect из состава системы Avanpost FAM. Администратор может обеспечить использование как двухфакторной, так и многофакторной аутентификации в зависимости от сценария аутентификации для группы пользователя.

Настройка через механизм SAML

Настройка на стороне NextCloud

Настройка на стороне NextCloud осуществлять следующим образом:

  1. Войти в NextCloud (с установленным Nextcloud SAML/SSO Plugin) под учетной записью администратора.
  2. Перейти в раздел "Настройки" и войти в разделе "Параметры сервера" во вкладку "Подтверждение подлинности SSO и SAML".
  3. Установить флажок в графе "Разрешить использование нескольких пользовательских backend (например, LDAP)".
  4. Нажать кнопку "Добавить нового поставщика удостоверений".
  5. В разделе "Основные" указать следующие параметры:
    ПараметрЗначение
    UIDАтрибут, используемый в качестве внутреннего имени пользователя для NextCloud.
    Единый входНаименование провайдера, отображаемое на странице входа в NextCloud (допускается ввести произвольное значение).
  6. Указать параметры раздела "Единый вход" согласно таблице

    В URL, представленных в таблице в качестве примеров, вместо значения  “ADFS” необходимо указывать DNS сервера, на котором развернут Avanpost FAM ADFS Plugin.

    ПараметрЗначение
    Идентификатор записи IdP (в формате URL)Уникальный идентификатор IdP
    URL провайдера идентификации (IdP)Адрес для отправки поставщиком услуг (SP) запросов на аутентификацию

    URL для запросов SLO (Single Logout)

    Адрес IdP, куда SP будет отправлять запросы SLO
    URL адрес ответа IDP SLOАдрес, куда перенаправляется пользователь после осуществления выхода
    Открытый сертификат X.509 IdPСертификат проверки подписей SAML-сообщений в формате Base64

    Для заполнения поля "Открытый сертификат X.509 IdP" необходимо осуществить экспорт сертификата для подписи маркеров в AD FS:

    1. Открыть AD FS Manager и перейти в раздел "Служба", подраздел "Сертификаты".
    2. Открыть контекстное меню сертификата "Для подписи маркера" и нажать "Просмотр сертификата".
    3. В открывшемся окне нажать "Состав" и "Копировать в файл".
    4. Скопировать и сохранить сертификат (представлен в кодировке Base64) для дальнейшего использования.

  7. После появления сообщения "Метаданные верны" скачать данные в формате XML, нажав на кнопку "Скачать метаданные XML" (для дальнейшей настройке на сервера AD FS).

Настройка на стороне сервера AD FS

Настройка AD FS осуществляется следующим образом:

  1. Запустить административную консоль настройки AD FS.
  2. Перейти в раздел "Служба", подраздел "Методы проверки подлинности" и нажать "Изменить".
  3. Отключить (выключить флаги) все методы, кроме "Forms Authentication" и нажать ОК.
  4. Перейти в подраздел "Конечные точки" и убедиться, что включена конечная точка типа "SAML 2.0/WS-Federation".
  5. Запустить PowerShell от имени администратора.
  6. Добавить и настроить доверие к стороннему приложению NextCloud в службе федерации Active Directory (AD FS), введя следующие команды:
    Add-AdfsRelyingPartyTrust -Name nextcloud -Identifier nextcloud -ProtocolProfile SAML
    Set-AdfsRelyingPartyTrust -Targetname nextcloud -EncryptionCertificateRevocationCheck none -SigningCertificateRevocationCheck none
  7. Перейти в раздел "Отношения доверия проверяющей стороны" и дважды щелкнуть на созданное подключение "Nextcloud".
  8. Настроить параметры "Идентификатор" (например, https://nextcloud.testdomain.local/nextcloud/index.php/apps/user_saml/saml/metadata) и "Конечная точка" (например, https://nextcloud.testdomain.local/nextcloud/index.php/apps/user_saml/saml/acs).
  9. В разделе "Отношения доверия проверяющей стороны" вызвать контекстное меню для Nextcloud и открыть окно "Изменить политику подачи запросов для Nextcloud".
  10. Для правил преобразования выдачи (правила сопоставления типа входящего и типа исходящего утверждения) "UPN" настроить следующие параметры:
    1. Имя правила утверждения – UPN;
    2. Тип входящего утверждения – UPN;
    3. Тип исходящего утверждения – UPN;
    4. Установить флаг "Пройти по всем значениям утверждений"
  11. Для правил преобразования выдачи (правила сопоставления типа входящего и типа исходящего утверждения) "sAMAccountName" настроить следующие параметры:
    1. Имя правила утверждения – sAMAccountName;
    2. Тип входящего утверждения – Имя;
    3. Тип исходящего утверждения – UID;
    4. Установить флаг "Пройти по всем значениям утверждений".
  12. Для правил преобразования принятия (на проход через входящее утверждение или его фильтрацию) "UPN" настроить следующие параметры:
    1. Имя правила утверждения – UPN;
    2. Тип входящего утверждения – UPN;
    3. Установить флаг "Пройти по всем значениям утверждений".
  13. Для правил преобразования принятия (на проход через входящее утверждение или его фильтрацию) "sAMAccountName" настроить следующие параметры:
    1. Имя правила утверждения – sAMAccountName;
    2. Тип входящего утверждения – Имя;
    3. Установить флаг "Пройти по всем значениям утверждений.

      При выборе из выпадающего списка параметра "Тип входящего утверждения" для настройки правил "sAMAccountName" важно выбрать верный параметр Имя (unique_name). Не перепутать с неверным параметром Имя (given_name).

Настройка на стороне Avanpost FAM Server

Настройку приложения в интерфейсе административной консоли Avanpost FAM Server необходимо выполнить следующим образом: 

  1. Зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
  2. На этапе "Основные настройки" требуется ввести наименование (например, NextCloud) и выбрать тип SAML (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление SAML-приложениями).

  3. На этапе "Настройки интеграции" необходимо установить настройки приложения (В URL, представленных в таблице в качестве примеров, вместо значения  “ADFS” необходимо указывать DNS сервера, на котором развернут Avanpost FAM ADFS Plugin) согласно таблице.
    Название параметраОписание параметра
    Issuerhttp://ADFS/adfs/services/trust
    ACShttp://ADFS/adfs/ls
    Базовый URLhttp://ADFS/adfs/ks/idpinitiatedsignon
    Logouthttp://ADFS/adfs/logout
    NameID FormatУказывать необязательно.
    Значение NameID

    UPN

    Атрибут UPN (User Principal Name) не является основным (преднастроенным) атрибутов и должен быть настроен администратором до создания приложения (подробнее об основных и дополнительных атрибутах описано в статье Управление пользователями.

  4. На этапе "Настройки аутентификации" выбрать факторы аутентификации для приложения, установив переключатели напротив тех или иных факторов.
  5. На этапе "Завершение" установить флажок "Сделать приложение активным" и сохранить.
  6. Перейти в профиль созданного приложения из режима "Приложения" и войти во вкладку "Attributes".
  7. Добавить следующие атрибуты для схем утверждений (claims):
    Наименование атрибутаТип атрибутаОписание
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnЗначение из атрибутаДанному атрибуту присваивается значение дополнительного атрибута UPN.
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameЗначение из атрибутаДанному атрибуту присваивается значение основных атрибутов имени и фамилии пользователя.

Настройка через механизм OpenID Connect 

Настройка на стороне NextCloud

Настройка на стороне NextCloud осуществлять следующим образом:

  1. Войти в NextCloud под учетной записью администратора.
  2. Перейти в раздел "Приложения" и нажать кнопку "Загрузить" напротив приложения Social Login (более подробная информация о приложении Social Login: https://apps.nextcloud.com/apps/sociallogin).
  3. Перейти в раздел "Параметры сервера" и выбрать "Social login".

В графе Custom OpenID Connect нажать кнопку и задать параметры согласно таблице.

ПараметрЗначение
Внутреннее имяНазвание настраиваемого провайдера идентификации, которое будет отображаться в настройках Nextcloud. Например, Avanpost FAM.
Название

Название провайдера идентификации, отображаемое пользователям на кнопке страницы аутентификации и в настройках Nextcloud. Например, Avanpost FAM.

Authorize urlURL для авторизации (соответствует параметру Base URL).
Token urlURL для получения маркера доступа (Access token).
User info URL (optional)URL сервиса получения данных пользователя.
Client idУникальный идентификатор приложения.
Client SecretCекретный ключ, который будет использоваться для подключения к приложению.
ScopeОбласти действия приложения (разрешения для получения данных), разделенные пробелом. Например, openid и profile.

Настройка на стороне FAM Server

Настройку приложения в интерфейсе административной консоли Avanpost FAM Server необходимо выполнить следующим образом: 

  1. Зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
  2. На этапе "Основные настройки" требуется ввести наименование (например, NextCloud) и выбрать тип OAuth/Open ID Connect (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление OpenID Connect-приложениями).

  3. На этапе "Настройки интеграции" необходимо установить настройки приложения (более подробно описано в Шаг 2. Настройки интеграции для OIDC-приложения). 

    Название параметраОписание параметра
    SecretСекрет, который будет использоваться для подключения к приложению (должен соответствовать параметру Client Secret).
    Redirect URIsURL-адрес, на который пользователь будет перенаправлен после успешной аутентификации.
    Base URLURL-адрес, на который пользователь будет перенаправляться при переходе из личного кабинета.
    LogoutURL-адрес, на который пользователь будет перенаправлен после выхода из приложения.
  4. На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно описано в Шаг 3. Настройки аутентификации для OIDC-приложения).
  5. На этапе "Завершение" установить флажок "Сделать приложение активным" и сохранить (более подробно описано в Шаг 4. Завершение для OIDC-приложения).


Обсуждение