Мне сказали, что нашему PHP-приложению может потребоваться поддержка аутентификации с использованием ADFS.
Что такое ADFS для человека, отличного от Microsoft?
Чем он отличается от LDAP?
Как это работает? Какая информация будет включена в типичный запрос к серверу ADFS? Он предназначен как для аутентификации, так и для авторизации?
Доступны ли серверы ADFS обычно из Интернета (в то время как корпоративные контроллеры домена AD не доступны)?
Я пробовал читать некоторые документы Technet, но они полны разговоров Microsoft, которые не очень полезны.
Википедия лучше (см. Ниже), но, возможно, кто-то из сообщества ServerFault сможет заполнить некоторые пробелы.
Службы федерации Active Directory (ADFS) - это программный компонент, разработанный Microsoft, который можно установить в операционных системах Windows Server, чтобы предоставить пользователям доступ с единой регистрацией к системам и приложениям, расположенным за пределами организации. Он использует модель авторизации управления доступом на основе утверждений для обеспечения безопасности приложений и реализации федеративной идентификации.
Аутентификация на основе утверждений - это процесс аутентификации пользователя на основе набора утверждений о его личности, содержащихся в доверенном токене.
В ADFS федерация удостоверений устанавливается между двумя организациями путем установления доверия между двумя областями безопасности. Сервер федерации на одной стороне (сторона учетных записей) аутентифицирует пользователя стандартными средствами в доменных службах Active Directory, а затем выдает токен, содержащий серию утверждений о пользователе, включая его личность. С другой стороны, на стороне ресурсов, другой сервер федерации проверяет токен и выдает другой токен для локальных серверов, чтобы они приняли заявленное удостоверение. Это позволяет системе предоставлять контролируемый доступ к своим ресурсам или службам пользователю, принадлежащему к другой области безопасности, не требуя от пользователя аутентификации непосредственно в системе и без совместного использования двумя системами базы данных идентификаторов пользователей или паролей.
На практике этот подход обычно воспринимается пользователем следующим образом:
- Пользователь входит в свой локальный компьютер (как обычно, когда он начинает работу утром).
- Пользователь должен получить информацию на сайте экстрасети партнерской компании, например, чтобы узнать цены или сведения о продукте.
- Пользователь переходит на сайт экстранета партнерской компании, например: http://example.com
- Партнерский веб-сайт теперь не требует ввода пароля - вместо этого учетные данные пользователя передаются на партнерский сайт экстрасети с помощью AD FS.
- Теперь пользователь вошел на партнерский веб-сайт и может взаимодействовать с веб-сайтом «вошел в систему».
Из https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
Что такое ADFS для человека, отличного от Microsoft?
ADFS - это решение Microsoft для единого входа и веб-аутентификации.
Он используется в основном для предоставления единого набора учетных данных, которые могут получить доступ к множеству сайтов, не обязательно размещенных в одном домене.
Чем он отличается от LDAP?
LDAP:
mod_authnz_ldap
.ADFS:
Смотрите также этот ответ по этому вопросу.
Как это работает? Какая информация будет включена в типичный запрос к серверу 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.