Обзор служб федерации Active Directory (ADFS)

Уже очень давно хотел начать серию материалов о службах федерации Active Directory (ADFS). За время работы с данным компонентом Windows Server у меня накопился внушительный список практических кейсов. К ним можно отнести аутентификацию в веб-приложениях, гибридную аутентификацию c Azure Active Directory, публикацию веб-приложений и многое другое.В далеком 2014-м году мной частично была затронута тематика ADFS в разрезе публикации Exchange. Увы, тогда обзор возможностей служб федерации ограничился контекстом продукта Exchange и должным образом раскрыт не был.
Этой статьей я планирую исправить данное упущение, объяснив назначение и принцип работы этого сервиса. Сам же функционал и ключевые возможности планирую рассмотреть в будущих статьях. Поехали.

Обзор служб федерации Active Directory

ADFS (Active Directory Federation Services) — это компонент Windows Server обеспечивающий функционал провайдера аутентификации для веб-приложений. Для лучшего понимания вышесказанного весь последующий обзор будет строится вокруг практического кейса. И так, рассмотрим следующею задачу: необходимо «прикрутить» возможность входа для корпоративных пользователей Active Directory к веб приложению, которое работает в сети Интернет. Схематически эту задачу можно изобразить следующим образом:

Веб-приложение и Active Directory Domain Services
Веб-приложение и Active Directory Domain Services

Если пойти по пути наименьшего сопротивления, “в лоб”, на сетевом уровне должны быть открыты сетевые порты для работы штатных протоколов аутентификации. В самом веб-приложении должна быть реализована их поддержка. На первый взгляд звучит не плохо, но при детальном рассмотрении сразу же возникают первые подводные камни. Перерисую схему учитывая базовый дизайн инфраструктуры:

Интернет веб-приложение с сетевой инфраструктурой
Интернет веб-приложение с сетевой инфраструктурой

А вот и обещанные подводные камни – проблемы с безопасностью и сложная техническая реализация.

Первое – протоколы аутентификации используемые в Active Directory не рассчитаны для работы в сети Интернет. Kerberos полноценно работать не будет, так как для полной его поддержки требуется членство веб-сервера в домене AD. Остается аутентификация по NTLM и LDAP, но даже с ними реализация не внушает оптимизма.

Второе – чтобы реализовать подобный сценарий, с сетевой точки зрения, необходимо проделывать «дырки» используя DNAT. Это связано с фактом использования приватных диапазонов IP адресов в корпоративной сети.

Выходом может быть использование Site-to-Site VPN. Далее, стандартные протоколы аутентификации. Хоть и отпадают сложности на сетевом уровне, но все же это «костыльный» вариант. Он потребует специфические условия для реализации, что в свою весьма усложнит конечный дизайн решения.

Чтобы все же решить данную задачу, начиная с Windows Server 2003 R2, были представлены службы федерации Active Directory. Реализация отдельного веб-провайдера аутентификации увенчалась успехом, и вот почему:

Во-первых, для взаимодействия клиентов и серверных компонентов приложений используется протокол HTTPS. Это предоставляет приемлемый уровень безопасности транспорта, так как используются протоколы SSL/TLS. Сценарии высокой доступности реализуется стандартными средствами NLB.

Во-вторых, в основе аутентификации лежит использование токенов доступа или утверждений «Claim». Они могут быть основаны на ряде стандартов, таких как OAuth, SAML и WS-Federation. Сам же маркер доступа представляет конструкцию содержащею конечный набор параметров и цифровую подпись провайдера аутентификации. Разметка токена будет осуществляться одним из распространенных форматов: Simple Web Token (SWT), JSON Web Token (JWT) или Security Assertion Markup Language (SAML).

Архитектура и принципы работы служб федерации Active Directory (ADFS)

Рассмотрим архитектуру на примере нашей задачи перерисовав схему:

Веб-приложение вместе с ADFS
Веб-приложение вместе с ADFS

Службы федерации будут состоят из двух компонентов – Active Directory Federation Services (ADFS) и Web Application Proxy (WAP)

Задача первого состоит в обеспечении взаимодействия со службами каталога Active Directory используя стандартные протоколы аутентификации (Kerberos, NTLM). ADFS выступают в качестве сервиса маркеров доступа. Его задача, на основании успешной аутентификации Active Directory, выдавать цифровые удостоверения (Claims). Эти выданные удостоверения будут являеться достаточным основанием для успешной аутентификации и авторизации в веб-приложении.

Компонент Web Application Proxy (WAP) принимает входящие запросы из сети Интернет и перенаправляет их на сервера ADFS для последующей обработки. Ответы от серверов ADFS пересылаются на него и он, в свою очередь, пересылает их клиенту. Параллельно этот компонент может выступать в роли реверс прокси сервера для публикации веб-приложений в Интернет. Например, веб-приложение Exchange Web Access (OWA) поддерживает аутентификацию ADFS, а сами службы WAP могут опубликовать OWA в Интернет для доступа внешними пользователями.

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

Как работают службы федерации Active Directory (ADFS)
Как работают службы федерации Active Directory (ADFS)

Для конечного пользователя, весь процесс прохождения аутентификации останется прозрачным. Единственный нюанс будет в отработке сценария Single Sign On или нет. Дело в том, что аутентификация предполагает использование доменных учетных данных пользователя. Если на 3-м этапе запрос происходит с доменного компьютера, при настроенном SSO, у пользователя не будут запрошены стандартные аутентификационые данные (логин и пароль). Вместо этого, будут взяты сессионные данные, и, с их помощью, произойдёт последующая аутентификация в службах каталога.

Службы федерации очень интересный и важный компонент семейства Active Directory. Помимо основного функционала веб-провайдера аутентификации, он обладает внушительными возможностями по обеспечению задач информационной безопасности. К ним можно отнести поддержку мультифакторной аутентификации, условный доступ в веб-приложениях, поддержку функционала Windows Hello и многое другое. По мере возможностей, я буду возвращается к этим темам в будущих статьях.

Установка служб федерации Active Directory (ADFS)

4.5 2 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Анна
Анна
25.06.2019 16:31

очень полезно и познавательно

Takavla
Takavla
18.05.2020 19:00

Спасибо большое! Хорошо объяснили зачем использовать ADFS

AnimalPornXXX
AnimalPornXXX
08.09.2020 11:47

Спасибо вам за статью, интересная штука.