ADFS (Active Directory Federation Services) — это функция, представленная на Windows Server, которая обеспечивает решение идентификации доступа. Она дает возможность клиентам на базе браузеров, которые находятся внутри или за пределами локальной сети, получать доступ по технологии Single-Sign-On (SSO) к веб приложениям. В ADFS это достигается благодаря защищенному обмену цифровыми удостоверениями и правами (или «утверждениями», Claims) между партнерами, связанными федеративными отношениями.
Службы ADFS тесно интегрированы с Active Directory. ADFS извлекает атрибуты пользователей из Active Directory, а также проверяет подлинность пользователей в Active Directory. Кроме того, ADFS поддерживает встроенную проверку подлинности Windows.
В качестве стандарта для взаимодействия компонентов федерации, прикладных подсистем (проверяющих сторон) и клиентских приложений выбрана спецификация WS-Federation, входящая в составе стека протоколов WS-*, разработанного промышленным консорциумом при участии Microsoft, и базирующаяся на других протоколах данного стека, таких как WS-Security.
Для взаимодействия клиентов и серверных компонентов приложений в качестве транспорта используется протокол HTTPS.
Служба федерации ADFS является компонентом серверной платформы Microsoft Windows Server, реализующим Сервис маркеров доступа (Security Token Service, STS) в соответствии со спецификацией WS-Trust, WS-Federation. Сервис маркеров доступа (СМД) использует службу каталога Active Directory для аутентификации пользователей и хранения информации о них.
Основными операциями, выполняемыми СМД, являются:
- Первоначальная аутентификация пользователя
- Выпуск маркера доступа (Issue)
- Проверка маркера доступа (Validate)
- Обновление маркера доступа (Renew)
- Аннулирование маркера доступа (Cancel)
Маркер доступа выпускается СМД по факту успешной аутентификации пользователя. Маркер доступа однозначно связан с пользователем и достоверно идентифицирует пользователя приложения, являясь, одновременно, унифицированным форматом для передачи данных о пользователе в приложение. В качестве информации для подтверждения своей идентичности пользователь может использовать:
- имя пользователя и пароль;
- сертификат пользователя.
Маркер доступа соответствует спецификации SAML (SAML Token), которая базируется на XML и определяет синтаксис и структуру маркера. Данный формат является расширяемым, что позволяет формировать содержание маркера в соответствии с требованиями приложения, к которому осуществляется доступ. Маркер доступа зашифрован и подписан Сервисом маркеров доступа, которым он выпущен, для обеспечения подлинности маркера и целостности и конфиденциальности передаваемых в маркере данных. Срок действия маркера и область применения ограничены. Маркер доступа содержит информацию о пользователе в форме набора утверждений (Claims), которые используются приложением для создания контекста пользователя (в том числе для целей авторизации и персонификации). Приложение, или проверяющая сторона в ADFS (Relying Party, RP) — это прикладная система (веб-приложение или веб-сервис), которая использует внешний сервис аутентификации, доверяя ему аутентификацию пользователей, и является потребителем маркеров доступа, выдаваемых пользователям, успешно прошедшим аутентификацию СМД. Проверяющая сторона использует маркер доступа, включаемый в запрос пользователя к приложению, для создания контекста пользователя. Для проверяющих сторон, расположенных в одном домене безопасности, т.е. имеющих отношения доверия с общим Сервисом маркеров доступа, обеспечивается единая точка регистрации (Single Sign-on, SSO).
В процессе доступа к веб-приложению пересылаются следующие сообщения, относящиеся к ADFS:
- Пользователь браузера пытается обратиться к приложению Web-сервера. Агент ADFS обнаруживает, что пользователь не прошел проверку подлинности в ADFS, и отсылает его на сервер федерации поставщика ресурсов.
- На данном этапе, известном как обнаружение домашней области, пользователь браузера предоставляет информацию о своем домене серверу федерации поставщика ресурсов. Домашний домен — место, в котором определено и обслуживается удостоверение пользователя, иными словами, поставщик удостоверения пользователя. При первом подключении пользователя к веб-приложению пользователь предоставляет такие сведения, как имя поставщика удостоверения или адрес электронной почты. При последующих запросах сервер федерации поставщика ресурсов отыскивает эти данные в cookie-файле, переданном пользователем. В зависимости от данных, переданных в процессе обнаружения домашней области, сервер федерации поставщика ресурсов перенаправляет браузер пользователя на сервер федерации поставщика удостоверения для проверки подлинности.
- Пользователь браузера проходит проверку подлинности в сервере федерации своего поставщика аутентификации с использованием своей учетной записи AD и соответствующих учетных данных.
- Сервер федерации поставщика аутентификации проверяет учетные данные пользователя в AD. Если проверка завершается успешно, то сервер генерирует cookie-файл аутентификации и маркер безопасности ADFS.
- Сервер федерации поставщика аутентификации формирует маркер безопасности и перенаправляет браузер пользователя вместе с маркером безопасности и cookie-файлом аутентификации на сервер федерации поставщика ресурсов.
- Сервер федерации поставщика ресурсов преобразует заявку в маркере безопасности в набор заявок, распознаваемых веб-приложением, размещенным в поставщике ресурсов, и вставляет их в новый маркер безопасности. Этот процесс известен как преобразование заявки. Сервер федерации также генерирует cookie-файл аутентификации и перенаправляет пользователя браузера (вместе с новым маркером безопасности и cookie-файлом аутентификации) в агент ADFS Веб-приложения. Агент проверяет cookie-файл аутентификации, извлекает заявку из маркера безопасности и передает ее в веб-приложение.
- Веб-приложение интерпретирует заявки в ходе проверки подлинности и передает соответствующие веб-материалы в браузер пользователя.
Многие компании заинтересованы в возможности обмениваться данными с доверенными внешними пользователями через Интернет. Клиентам удобно обращаться к ресурсам с использованием собственных учетных записей, не создавая учетных записей в чужой системе. Однако необходимо, чтобы доступ получали только проверенные пользователи.
Active Directory во многих организациях служит в качестве основной службы для хранения учетных данных и проверки подлинности. С помощью Active Directory доверие лесов может быть создано между двумя и более лесами для обеспечения доступа к ресурсам, расположенным в разных производственных подразделениях или организациях.
Однако в ряде случаев доверие лесов не является приемлемым типом отношений. Например, может потребоваться ограничить доступ к ресурсам, расположенным в разных организациях, только небольшим подмножеством пользователей, закрыв его для остальных членов леса. Именно в этих случаях ADFS является отличной заменой доверительным отношениям Active Directory.
Получить дополнительную информацию по описанной технологии и особенностях внедрения Вы можете здесь.