Службы единого входа (Single Sign-On, SSO) и федеративные службы довольно часто встречаются в современном ИТ. Если говорить грубо, то Microsoft Active Directory тоже предоставляет SSO – вам достаточно один раз указать ваш логин и пароль, получить билет от Kerberos и в последующем вы на какое-то время забываете про указание логина и пароля, вся нужная информация для аутентификации есть в билете. Но Active Directory Federation Services (AD FS) сделал шаг еще дальше – вы можете использовать SSO между абсолютно разными системами, которые управляются абсолютно разными компаниями. Приведу пример. Вы можете настроить федерацию между Office 365 и вашим сервером AD FS, что позволит вам аутентифицироваться в сервисах Office 365 с помощью вашей локальной учетной записи в домене AD. В этой публикации я покажу как выполняется установка Active Directory Federation Services.
Предварительные требования
В качестве операционной системы я буду использовать Windows Server 2019. Эта версия операционной системы включает в себя Windows Server 2019 AD FS. В каждой версии AD FS Microsoft добавляет какие-то новые функции. Ознакомиться с перечнем последних изменений можно вот тут.
Особых предварительных требований перед установкой AD FS нет. Необходимо только, чтобы сервер, на котором вы планируете установить AD FS, был присоединен к доменеу Active Directory.
Подготовка сервера
Непосредственно перед как будет запущена установка Active Directory Federation Services необходимо выполнить ряд подготовительных действий:
1. Сначала создадим центр распределения ключей (KDS) вручную, чтобы не ждать репликацию 10 часов. Запустите PowerShell от имени администратора и выполните следующую команду:
Add-KdsRootKey –EffectiveTime (Get-Date).AddHours(-10)
2. Также для установки нам понадобится SSL сертификат, т.к. AD FS принимает подключения на порту TCP/443. О том, как выпустить бесплатный сертификат я уже рассказывал. После выпуска установить сертификат в личное хранилище компьютера.
3. В процессе установки сервера AD FS необходимо будет определить имя, по которому сервер будет прослушивать подключения. Если это имя совпадает с текущем именем сервера, то дополнительных действий не требуется. Я определю имя sso.itproblog.ru, что не совпадает с текущем именем сервера. Соответственно, мне нужно будет зарегистрировать дополнительное имя в моем внутреннем сервере DNS:
Установка Active Directory Federation Services
Теперь я покажу, как выполняется eстановка Active Directory Federation Services:
1. Запустите Server Manager и выберите пункт “Add Roles and Features”:
2. На странице приветствия мастера установки и выбора типа установки нажмите кнопку “Next”.
3. На странице выбора сервера укажите ваш сервер AD FS и нажмите “Next”.
4. Теперь важный момент. На странице выбора ролей и компонентов необходимо указать роль “Active Directory Federation Services”.
5. На следующий страницах мастера установки достаточно нажать “Next”. На заключительном шаге нажмите “Install”. Дождитесь окончания процесса установки роли AD FS.
6. После завершения установки роли её необходимо настроить.
7. Нам необходимо создать новую ферму из одного сервера, т.к. в этой статье не рассматривается отказоустойчивая конфигурация AD FS:
8. Затем нам необходимо указать учетную запись администратора домена Active Directory, чтобы мастер настройки мог внести нужные изменения в AD:
9. На следующем шаге нужно выбрать SSL сертификат, который мы импортировали ранее, указать имя, по которому сервер AD FS будет доступен и выбрать отображаемое имя сервера.
10. AD FS поддерживает работу с групповыми управляемыми учетными записями (gMSA). Более того, он может создать такую запись за вас. Достаточно указать имя учетной записи.
11. Повторю – я не рассматриваю ферму AD FS серверов, т.е. выполняю настройку без отказоустойчивого сценария. И для этого сценария базы данных WID (Windows Internal Datase) более чем достаточно.
12. Заключительным шагом необходимо ознакомится со всей сводкой вносимых изменений, а затем инициировать процесс установки.
13. Дождитесь пока завершится установка Active Directory Federation Services.
Проверка
Установку мы с вами выполнили. Теперь давайте проверим – все ли у нас получилось. Для этого есть несколько простых шагов.
1. Вы можете попробовать получить метаинформацию о сервере AD FS по специльному URL:
https://sso.itproblog.ru/adfs/fs/federationserverservice.asmx
В случае успешной установки сервера AD FS вы должны увидеть XML документ с описанием нашего сервера.
2. Еще один вариант – это использование специальной тестовой страницы для проверки SSO. Однако, предварительно эту страницу нужно включить. Выполните вот этот командлен в консоле PowerShell от имени администратора:
Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
А теперь перейдите на страницу тестирования SSO:
https://sso.itproblog.ru//adfs/ls/idpinitiatedsignon
Нажмите кнопку “Sign in” и укажите ваши учетные данные.
В случае успешного завершения процедуры входа вы увидите соответствующую запись на тестовой страницы.
Пример сервиса сброса паролей
В качестве примера использования сервиса AD FS я покажу как можно настроить сервис смены паролей пользователей.
1. Сначала нужно включить этот сервер. Для этого запустите консоль управления сервиса AD FS и перейти в раздел “Endpoints”.
2. В списке найдите URL /adfs/portal/updatepassword и в контекстном меню выберите пункт “Enable”.
3. Консоль управления AD FS уведомит нас о том, что необходимо перезапустить сервис AD FS.
4. Запустить консоль PowerShell от имени администратора и перезапустите сервис AD FS:
Restart-Service adfssrv
5. Теперь вы можете перейти на страницу портале смены пароля пользователя:
https://sso.itproblog.ru/adfs/portal/updatepassword
Указав текущий и новый пароль для пользователя вы сможете инициировать процедуру смены пароля.