Назад | Перейти на главную страницу

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

Мне сказали, что нашему PHP-приложению может потребоваться поддержка аутентификации с использованием ADFS.

  1. Что такое ADFS для человека, отличного от Microsoft?

  2. Чем он отличается от LDAP?

  3. Как это работает? Какая информация будет включена в типичный запрос к серверу ADFS? Он предназначен как для аутентификации, так и для авторизации?

  4. Доступны ли серверы ADFS обычно из Интернета (в то время как корпоративные контроллеры домена AD не доступны)?

Я пробовал читать некоторые документы Technet, но они полны разговоров Microsoft, которые не очень полезны.

Википедия лучше (см. Ниже), но, возможно, кто-то из сообщества ServerFault сможет заполнить некоторые пробелы.

Службы федерации Active Directory (ADFS) - это программный компонент, разработанный Microsoft, который можно установить в операционных системах Windows Server, чтобы предоставить пользователям доступ с единой регистрацией к системам и приложениям, расположенным за пределами организации. Он использует модель авторизации управления доступом на основе утверждений для обеспечения безопасности приложений и реализации федеративной идентификации.

Аутентификация на основе утверждений - это процесс аутентификации пользователя на основе набора утверждений о его личности, содержащихся в доверенном токене.

В ADFS федерация удостоверений устанавливается между двумя организациями путем установления доверия между двумя областями безопасности. Сервер федерации на одной стороне (сторона учетных записей) аутентифицирует пользователя стандартными средствами в доменных службах Active Directory, а затем выдает токен, содержащий серию утверждений о пользователе, включая его личность. С другой стороны, на стороне ресурсов, другой сервер федерации проверяет токен и выдает другой токен для локальных серверов, чтобы они приняли заявленное удостоверение. Это позволяет системе предоставлять контролируемый доступ к своим ресурсам или службам пользователю, принадлежащему к другой области безопасности, не требуя от пользователя аутентификации непосредственно в системе и без совместного использования двумя системами базы данных идентификаторов пользователей или паролей.

На практике этот подход обычно воспринимается пользователем следующим образом:

  1. Пользователь входит в свой локальный компьютер (как обычно, когда он начинает работу утром).
  2. Пользователь должен получить информацию на сайте экстрасети партнерской компании, например, чтобы узнать цены или сведения о продукте.
  3. Пользователь переходит на сайт экстранета партнерской компании, например: http://example.com
  4. Партнерский веб-сайт теперь не требует ввода пароля - вместо этого учетные данные пользователя передаются на партнерский сайт экстрасети с помощью AD FS.
  5. Теперь пользователь вошел на партнерский веб-сайт и может взаимодействовать с веб-сайтом «вошел в систему».

Из https://en.wikipedia.org/wiki/Active_Directory_Federation_Services

Что такое ADFS для человека, отличного от Microsoft?

ADFS - это решение Microsoft для единого входа и веб-аутентификации.

Он используется в основном для предоставления единого набора учетных данных, которые могут получить доступ к множеству сайтов, не обязательно размещенных в одном домене.

Чем он отличается от LDAP?

LDAP:

  • Обменивается данными с использованием TCP / UDP на порт 389 (или порт 636 для LDAPS)
  • Содержит команды для поиска / извлечения / добавления / удаления / изменения пользователей, профилей и других записей каталога
  • Жестяная банка не выполняться непосредственно веб-браузером, однако HTTP-аутентификация может быть переведена на LDAP с помощью таких вещей, как Apache mod_authnz_ldap.
  • При использовании для аутентификации стороннего веб-сайта требует, чтобы имя пользователя и пароль были предоставлены третьей стороне, что не идеально для безопасности.
  • Это скорее открытый стандарт, имеющий множество реализаций для Linux.

ADFS:

  • Лучше разработан для Интернета, поскольку он обменивается данными по стандартному HTTPS
  • Выполняет более безопасный процесс, похожий (но не точный) на OAuth, где исходное имя пользователя и пароль предоставляются непосредственно на сервер ADFS организации (или прокси, но не сторонний), который, если он действителен, возвращает уникальный токен, который можно использовать для доступа к стороннему веб-сайту.
  • Хотя он действительно использует некоторые открытые стандарты (HTTPS, SAML и т. Д.), Он специфичен для Microsoft и требует Internet Information Services (IIS), который работает только на серверах Windows.

Смотрите также этот ответ по этому вопросу.

Как это работает? Какая информация будет включена в типичный запрос к серверу ADFS? Он предназначен как для аутентификации, так и для авторизации?

Он работает, имея один сайт (сайт A), на котором размещены прокси-серверы ADFS / ADFS, у которых есть доступ к учетным данным (обычно путем взаимодействия с контроллером домена Active Directory). Затем ему предоставляется доверие между другими сайтами (сайтами B и C), которые требуют аутентификации через ADFS.

Когда пользователь пытается получить доступ к сайту B в своем браузере, сайт перенаправляет пользователя на сайт ADFS-прокси (сайт A), который запрашивает его имя пользователя и пароль, аутентифицирует их, возвращает набор файлов cookie для их запоминания и перенаправляет их. обратно на сайт B вместе с токеном доступа.

Если пользователь затем попытается посетить сайт C, он также будет перенаправлен на сайт A для аутентификации с веб-сайта ADFS-прокси. Если существуют нужные файлы cookie, пользователю не нужно будет снова вводить пароль, но он будет немедленно перенаправлен обратно на сайт C с помощью токена.

В ADFS можно настроить определенные утверждения (или разрешения) для пользователя в целях авторизации. Так что он может выполнять обе роли. (Обратите внимание разница между аутентификацией и авторизацией.)

Некоторые люди предпочитают не использовать его для авторизации, а вместо этого сохраняют управление разрешениями на стороннем веб-сайте. Очевидным недостатком является то, что оба сайта A и B должны отслеживать учетные записи пользователей, в то время как в сценарии, где ADFS обрабатывает оба, только ADFS должен знать о пользователях.

Доступны ли серверы ADFS обычно из Интернета (в то время как корпоративные контроллеры домена AD не доступны)?

Да почти всегда. ADFS основан на том, что он будет в основном использоваться для аутентификации веб-сайтов. И построен на базе IIS.

Сайт ADFS-прокси - это тот, который обычно доступен из Интернета. Однако сам ADFS - нет. ADFS обычно является отдельным сервером от прокси-сервера ADFS.

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