Настройка двухфакторной аутентификации ADFS
Общая информация
В статье описывается настройка Active Directory Federation Services (ADFS) для доступа к корпоративным приложениям.
Возможные способы аутентификации:
Мобильное приложение MultiFactor
Telegram
СМС
Биометрия
Аппаратные OTP токены
Приложения OTP: Google Authenticator или Яндекс.Ключ
Видео-презентация
Схема работы
- Пользователь открывает корпоративное приложение;
- ADFS запрашивает логин первый фактор аутентификации: логин и пароль, проверяет корректность указанных данных и, если данные верны, переходит ко второму этапу аутентификации;
- На втором этапе открывается окно проверки второго фактора Мультифактор, в котором пользователю предлагается подтвердить доступ;
- Пользователь подтверждает второй фактор доступа и переходит к работе с приложением.
Для настройки второго фактора аутентификации вам потребуется установить и настроить на сервере ADFS компонент MultiFactor.ADFS.Adapter. Компонент разработан и поддерживается компанией Мультифактор, распространяется бесплатно вместе с исходным кодом. Актуальная версия находится на GitHub: код и сборка.
Обратите внимание на лицензию. Она не дает вам право вносить изменения в исходный код Компонента и создавать производные продукты на его основе. Исходный код предоставляется в ознакомительных целях.
Требования для установки
- Компоненту необходим доступ к хосту api.multifactor.ru по TCP порту 443 (TLS) напрямую или через HTTP прокси;
- На сервере должно быть установлено правильное время.
Настройка Мультифактора
- Зайдите в систему управления Мультифактором, далее в раздел "Ресурсы" и создайте новый сайт с настройками по умолчанию;
Настройка ADFS
- Загрузите и распакуйте архив на сервер с ADFS.
- Отредактируйте файл конфигурации MultiFactor.ADFS.Adapter.dll.config: пропишите ключи доступа из личного кабинета Мультифактора
- Запустите PowerShell скрипт install.ps1 с правами администратора.
- Зайдите в консоль управления ADFS, в разделе "Authentication methods" -> "Multi-factor Authentication Methods" включите метод MultiFactor.
- В разделе Relying Party Trusts отредактируйте Access Policy для приложений, где необходимо включить 2FA.
Если что-то не работает
- Если возникают ошибки при установке плагина, проверьте, что установочный скрипт вы выполняете от имени администратора;
- Для работы в кластерной конфигурации компонент необходимо установить на все серверы кластера;
- Ошибки, связанные с работой компонента, можно посмотреть на сервере ADFS в журнале Windows: в разделе Applications с источником MultiFactor, а также в разделе ADFS;
- Если не прогружается iframe с окном второго фактора, а в консоли браузера вы видите ошибку:
Refused to frame 'https://access.multifactor.ru/' because it violates the following
Content Security Policy directive: "default-src 'self'". Note that 'frame-src' was
not explicitly set, so 'default-src' is used as a fallback."
То добавьте домен access.multifactor.ru в исключения политики безопасности содержимого, разрешая ему открываться во фрейме. Это можно сделать следующей PowerShell командой, запущенной от роли администратора:
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" `
-SetHeaderValue "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; frame-src access.multifactor.ru"