ADFS (Active Directory Federation Services) — это компонент Windows Server обеспечивающий функционал провайдера аутентификации для веб-приложений. Службы федерации AD используются для аутентификации внешних пользователей в приложениях.
Зачем нужна ADFS, если есть Active Directory? Дело в том, что протоколы аутентификации, используемые в Active Directory, не рассчитаны для работы в сети Интернет. Kerberos полноценно работать не будет, так как для его поддержки требуется членство веб-сервера в домене AD. NTLM и LM – недостаточно защищенные протоколы аутентификации.
ADFS выступают в качестве источика маркеров доступа. Его задача — выдавать цифровые удостоверения (Claims — CBA) на основании успешной аутентификации в Active Directory. Эти выданные удостоверения будут является достаточным основанием для успешной аутентификации и авторизации в веб-приложении.
Службы федерации состоят из двух компонентов — Active Directory Federation Services (ADFS) и Web Application Proxy (WAP). WAP принимает входящие запросы из сети Интернет и перенаправляет их на сервер ADFS для последующей обработки. Ответ от сервера ADFS пересылаются на WAP и он, в свою очередь, пересылает их клиенту. Также WAP может выступать в роли реверс прокси сервера для публикации веб-приложений в Интернет, например, для публикации Exchange Web Access (OWA), внутреннего SharePoint и т.д. Передаваемые по сети данные шифруются с помощью SSL 3.0.
Рекомендуется устанавливать AD FS на выделенный сервер и не совмещать с ролями RDS или RADIUS.
В этой статье мы покажем, как установить и настроить роль ADFS на Windows Server 2016. При установке ADFS нужно будет указать сервисную учётную запись в домене (из-под нее будут работать службы ADFS) и сертификат.
Рекомендуется использовать доменную сервисную учетную запись типа Group Managed Service Accounts (gMSA). Создайте gMSA аккаунт с помощью PowerShell:
$server1 = Get-ADComputer adfs1
New-ADServiceAccount -Name gMSAADFS -DNSHostName gMSAADFS.vmblog.ru -Enabled $True -ManagedPasswordIntervalInDays 30 -PrincipalsAllowedToRetrieveManagedPassword $server1
По умолчанию gMSA учетки создаются в отдельном OU Managed Service Accounts.
Затем получите у вашего внутреннего CA (ADCS) или внешнего коммерческого Certificate Authority сертификат с EKU “Server Authentication” и возможностью экспорта закрытого ключа. Сертификат в Subject name и Subject alternative name должен содержать полный перечень публикуемых сервисов. Сертификат нужно экспортировать в формат .pfx.
Вы можете установить роль ADFS 3.0 в Windows Server 2016 с помощью Server Manager или с помощью одной команды PowerShell:
Add-WindowsFeature ADFS-Federation
После установки ADFS через Server Manager запустите оснастку конфигурирования ADFS (Configure the federation services on this server).
Выберете Create the first federation server in a federation farm.
Выберите ваш pfx сертфикат.
На следующем этапе укажите ваш gMSA аккаунт (gMSAADFS).
Укажите, хотите ли вы использовать отдельный MS SQL Server или внутреннюю базу Windows (WID).
Затем щелкаете, Next -> Next -> Configure. Ваш ADFS сервер развернут.
Чтобы проверить доступность ADFS через специальную веб-страницу в Windows Server 2016 нужно включить IdpInitiatedSignOnPage. Включите тестовую страницу командой PowerShell:
Set-AdfsProperties -EnableIdpInitiatedSignonPage $true
После этого можно будет открыть в браузере страницу: https://adfs1.vmblog.ru/adfs/ls/IdpInitiatedSignon.aspx
Поробуйте залогинится под вашим доменным аккаунтом.
В дальнейшем для настройки ADFS нужно использовать консоль AD FS Management.