Avanpost FAM/MFA+ : 4.5.1. Установка FAM ADFS Plugin на Microsoft ADFS

ADFS (Active Directory Federation Services) — это возможность Windows Server, которая обеспечивает решение идентификации доступа. В качестве стандарта для взаимодействия компонентов федерации, проверяющих сторон и клиентских приложений используется спецификация WS-Federation, в качестве транспорта используется протокол HTTPS. 

При установке в ADFS плагина аутентификации его возможно подключить к Avanpost FAM в качестве отдельного приложения, управляя сценарием аутентификации.

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

К моменту осуществления настройки должны быть выполнены следующие требования:

  • На сервере установлена и настроена AD, а также заведены пользователи, которые состоят в нужных группах.
  • Выполнены требования к службам федерации AD
  • На сервере должно быть установлено корректное время.

Установка и настройка на стороне плагина ADFS

  1. Скачать и распаковать на рабочую машину актуальную версию архива из репозитория
  2. Из корня папки распакованного архива открыть для редактирования файл App.config.

3. Внести изменения в файл App.config, согласно таблице значений.

Redirect URL и clientid следует скопировать из настроек в административной панели.

Пример и таблица параметров файла App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <!-Avanpost configs->
        <add key="clientid" value="adfs-test" /> 
        <add key="secret" value="adfs-test-secret" /> 
        <add key="redirectUrl" value="https://<домен>" />
        <add key="authEndpoint" value="https://<домен>/oauth2/authorize" /> - 
        <add key="tokenEndpoint" value="https://<домен>/oauth2/token" /> - секция token endpoint из https://<домен>//.well-known/openid-configuration
        <!-/Avanpost configs->
    </appSettings>
</configuration>
ПараметрЗначение
clientid
Значение clientid приложения, следует скопировать из административной консоли
secret
Секрет приложения
redirectUrl
URL для редиректа, должен совпадать с URL, указанным для страницы входа
authEndpoint
Значение секции authorize endpoint из файла по адресу https://<домен>//.well-known/openid-configuration
tokenEndpoint
Значение секции token endpoint из https://<домен>//.well-known/openid-configuration

Важно

Значения элементов секрета в указанной реализации не должны содержать следующие комбинации символов: "--" (двойное тире); "/*" (косая черта, звездочка); "&#" (амперсанд решетка).

4. Далее следует открыть Windows PowerShell с параметром Запуск от имени администратора. В PowerShell выполнить команду с правами администратора и установить значение value == "true" к следующей ссылке для включения MFA:

http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork
Set-AdfsAdditionalAuthenticationRule –AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "true"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );'

5. Выполнить install.cmd, находящийся в папке архива, от имени администратора. Получить сообщения об ожидании остановки службы ADFS.

Если возникают ошибки при установке, проверьте, что скрипты выполнены от имени администратора.

6. В панели управления ADFS перейти на вкладку "Методы проверки подлинности", выбрать "Изменить Методы многофакторной проверки подлинности" и включить метод "Avanpost" на вкладке "Дополнительно".


Проверка настройки

Для проверки настройки необходимо открыть тестовую страницу https://<домен>/adfs/ls/idpinitiatedsignon в браузере, подставив вместо "домен" имя домена, указанное в параметре redirectUrl:

  1. При переходе по ссылке должно появиться окно для ввода учетных данных.

2. Должно появиться сообщение об успешной авторизации.

3. Ввести данные для аутентификации во всплывающем окне.



Ошибки, связанные с работой компонента, можно посмотреть на сервере ADFS в журнале Windows.

Если не прогружается iframe с окном второго фактора, то необходимо добавить домен в исключения политики безопасности содержимого, разрешив ему открываться во фрейме.

Это можно сделать следующей PowerShell командой, запущенной от роли администратора:

Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; frame-src *"

Также эту команду следует выполнить, если появляется ошибка следующего содержания:

Refused to frame 'https://____.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."

Если возникает ошибка, связанная с запретом встраивания фрейма с другого ресурса (заголовок X-Frame-Options: DENY), то следует внести в nginx на машине, где установлен FAM, следующее правило:

 location / {
        proxy_pass       http://127.0.0.1:4008;
        add_header X-Frame-Options SAMEORIGIN;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


Обновление параметров

В панели управления ADFS перейти на вкладку "Методы проверки подлинности", выбрать "Изменить Методы многофакторной проверки подлинности" и выключить метод "Avanpost" на вкладке "Дополнительно".

2. Выполнить файл remove.cmd из папки архива от имени администратора, дождаться запроса на удаление, подтвердить удаление (нажав "y").


3. Загрузить обновленный модуль/изменить файл конфигурации, придерживаясь п.2 из раздела Настройка данной инструкции.
4. Выполнить файл install.cmd от имени администратора. Получить сообщения об ожидании остановки службы ADFS.


5. В панели управления ADFS перейти на вкладку "Методы проверки подлинности", выбрать "Изменить Методы многофакторной проверки подлинности" и включить метод "Avanpost" на вкладке "Дополнительно".

Обсуждение