Avanpost FAM/MFA+ : 3.3.7. Reverse Proxy

Reverse Proxy – технология подключения веб-приложений к Avanpost FAM с целью обеспечения 2FA/MFA/SSO/SLO. Данный механизм предназначен для использования в ситуациях, когда требуется подключить к системе единой аутентификации унаследованное веб-приложение без поддержки стандартных IdP-протоколов, к примеру, OAuth/OpenID Connect либо SAML

В режиме Reverse Proxy система Avanpost FAM выступает в роли посредника (прокси-сервера), с которым взаимодействует пользователь, и которая решает за пользователя задачу аутентификации и взаимодействия с веб-сервером непосредственно приложения. 

Начиная с версии 1.13.1 обратный прокси-сервер, интегрированный в Avanpost FAM Server, заменен на MVP-модуль отчуждаемого компонента Reverse Proxy (MVP Reverse Proxy Service). Компонент Avanpost FAM Reverse Proxy Service выполняет следующие функции:

  • Получает и хранит настройки интеграции с Reverse Proxy-приложениями, включая параметры аутентификации, скрипт аутентификации и т.п.
  • Выполняет аутентификацию пользователя.
  • Хранит данные о сессии пользователя.
  • Реагирует на Backchannel-logout запросы со стороны сервера.
  • Обслуживает запросы пользователей, проксируя их на целевой ресурс в соответствии с заданными настройками аутентификации.

Режимы аутентификации в Reverse Proxy-механизме

Для приложения, подключаемого к Avanpost FAM посредством механизма Reverse Proxy, доступны следующие режимы аутентификации:

  • «Без аутентификации» – в этом случае система работает как прокси-сервер, выполняющий предварительную аутентификацию перед штатной аутентификацией. Дополнительных настроек не предполагается.
  • «Базовый» – используется механизм HTTP Basic для аутентификации пользователя во внутреннем механизме унаследованного веб-приложения. Для автоматической работы режима требуется использование механизма импорта учётных записей прикладной системы.
  • «Форма» – используется механизм аутентификации посредством эмуляции отправки HTTP Web Form. Для автоматической работы режима требуется использование механизма импорта учётных записей прикладной системы.
  • «Пользовательский скрипт» – используется механизм аутентификации с использованием ECMAScript-сценария аутентификации (скриптовый язык, подобный JavaScript). Для автоматической работы режима требуется использование механизма импорта учётных записей прикладной системы.

Для режимов «Базовый», «Форма» и «Пользовательский скрипт» требуется обеспечивать заполнение внутренней базы данных учётных записей пользователей целевого приложения. Для режима «Без аутентификации» учётные данные целевого приложения не требуются.

Режим «Без аутентификации»

Применяется для решения задачи публикации унаследованного веб-приложения через прокси-сервер с предварительной аутентификацией посредством MFA-механизмов Avanpost FAM без прохождения аутентификации от имени пользователя в целевом унаследованном веб-приложении.

Сценарий для пользователя выглядит следующим образом:

  1. Пользователь обращается к унаследованному веб-приложению. Пользователю отображается веб-интерфейс аутентификации Avanpost FAM, реализующий заданный администратором сценарий MFA.
  2. После прохождения аутентификации пользователю отображается страница унаследованного веб-приложения. Если унаследованное веб-приложение требует дополнительной аутентификации, то пользователь видит форму аутентификации унаследованного веб-приложения.

Схема взаимодействий для режима Reverse Proxy без аутентификации от имени пользователя в унаследованном веб-приложении приведена на рисунке:

  1. Пользователь выполняет запрос на известный и доступный для него адрес целевого приложения https://webapp, который указывает на сетевой интерфейс Reverse Proxy компонента Avanpost FAM Server.
  2. Avanpost FAM при необходимости выполняет аутентификацию пользователя по настроенному сценарию MFA.
  3. Запрос проксируется на внутренний адрес https://internal-app, доступный для компонента Avanpost FAM Server.
  4. Ответ на запрос принимается Avanpost FAM Server.
  5. Ответ на запрос возвращается пользователю.

Последующие запросы пользователя к унаследованному веб-приложению через механизм Reverse Proxy при наличии сессии выполняются без запроса аутентификации.

Режим «Базовый»

Данный режим применяется в ситуациях, когда на стороне целевого веб-приложения имеется парольная аутентификация посредством механизма HTTP Basic (RFC 7617), подразумевающего передачу учётных данных (логина и пароля) в HTTP Basic-заголовке. В ответе на этот запрос от унаследованного веб-приложения ожидается HTTP-заголовок Set-Cookie, Cookie из которого сохраняется в сессии и автоматически добавляется ко всем последующим запросам пользователя в адрес унаследованного веб-приложения.

Режим «Форма»

Данный режим аутентификации применяется в ситуациях, когда на стороне целевого веб-приложения используется классическая парольная аутентификация, эмулируемая посредством отправки HTTP POST-запроса. Передача логина и пароля учётной записи в унаследованном веб-приложении осуществляется в теле (HTTP Body) HTTP POST-запроса. В ответе на этот запрос от унаследованного веб-приложения ожидается HTTP-заголовок Set-Cookie, Cookie из которого сохраняется в сессии и автоматически добавляется ко всем последующим запросам пользователя в адрес унаследованного веб-приложения.

Режим «Пользовательский скрипт»

Данный режим аутентификации применяется в ситуациях, когда на стороне целевого веб-приложения для прохождения аутентификации требуется выполнение последовательности произвольных HTTP-запросов. Передача логина и пароля учётной записи в унаследованном веб-приложении осуществляется в произвольном HTTP-запросе или последовательности HTTP-запросов. В ответе на этот запрос от унаследованного веб-приложения ожидается произвольный сессионный параметр (Cookie, JWT-токен, Bearer Token и т.д.), значения из которого сохраняется в сессии и автоматически добавляется ко всем последующим запросам пользователя в адрес унаследованного веб-приложения.


Обсуждение