Установка AADC с AD FS во многом схожа с процессом развертывания без серверов федерации. Тем не менее, существенные отличия все же есть и именно они заставили написать эту статью. Кроме того, мне очень повезло и в процессе тестовых развертываний встретилось огромное множество самых разных ошибок и сложностей. В итоге получасовой процесс развернулся в многодневные попытки отдебажить все новые и новые ошибки.
Если вам интересна тематика облачных технологий, рекомендую обратиться к тегу Cloud на моем блоге.
Содержание
Установка AADC с AD FS
Ниже я постараюсь подробно рассмотреть процесс развертывания AADC, основанный исключительно на личном опыте. Ваша инфраструктура может (и будет) сильно отличаться от моей и для вас алгоритм действий может оказаться немного другим. Именно поэтому настоятельно рекомендую ознакомиться с официальной документацией (Выборочная установка Azure AD Connect), которая в полной мере охватывает большинство вариантов развития событий (хотя и ничего не упоминает о возможных ошибках).
Подготовка
Перед развертыванием Azure AD Connect вы должны убедиться, что ваша инфраструктура полностью удовлетворяет внушительный перечень требований 1. Помимо этого, вам нужно подготовить и окружение Azure. Оба этих процесса я рассматривал в давних статьях, которые, тем не менее, по-прежнему актуальны:
- Локальная инфраструктура и Azure AD (без установки Azure AD Connect!)
- Подготовка Azure Active Directory
В сценарии, описанном в этой статье, я планирую развернуть AADC вместе с AD FS, а потому сервер федерации и WAP-прокси к этому моменту также должны быть полностью настроены. Процесс настройки этих серверов я рассматривал в одной из своих последних статей:
Как только все шаги, описанные в статьях, будут выполнены, можно идти дальше.
Установка
Для начала скачайте последнюю версию Azure AD Connect с официального сайта 2. После этого приступайте к установке.
Приветствие
На странице приветствия поставьте галочку на согласии с лицензионными соглашениями и нажимайте Продолжить:
Далее вам нужны настраиваемые параметры, а не быстрые:
При необходимости укажите отдельный экземпляр MS SQL, кастомный каталог для установки, либо другие параметры, не влияющие на конечную функциональность.
Базовые настройки
В секции базовых настроек вам нужно выбрать Федерация с AD FS, ведь именно этому сценарию мы и хотим следовать:
Далее указываем учетные данные глобального администратора Azure AD, которого вы создавали на этапе настройки окружения Azure:
Переходим к следующей секции.
Синхронизация
Подключаем каталоги: выбираем каталог и лес AD, нажимаем Добавить каталог:
Откроется диалоговое окно ввода учетных данных с правами администратора предприятия:
Как только каталог будет добавлен, вы увидите что-то подобное:
На следующем этапе нужно выбрать домен Azure AD. Если к этому моменту вы не добавили и не прошли проверку хотя бы по одному домену, который представлен как UPN-суффикс для учеток в лесу, то придется сделать это сейчас. А так оставляем все по умолчанию (крайне желательно оставить UserPrincipalName как атрибут для входа в Azure):
На следующей странице вы можете выбрать какие домены и подразделения синхронизировать в Azure AD. Мне подходит вариант синхронизации всей иерархии:
Настройки идентификации пользователей по умолчанию тоже нет смысла менять для простой иерархии Active Directory:
Далее вы можете выбрать группы для синхронизации. Это удобно для тестовых развертываний, но потом лучше не пользоваться этим функционалом, поскольку будут сложности с поддержкой актуального состава групп:
На следующей странице выберите дополнительные возможности. Я решил включить синхронизацию хэшей паролей, чтобы в случае проблем с доступом через AD FS иметь резервный вариант. В вашем случае это может быть лишней затеей, особенно если изначально есть требования в плане безопасности и нужно ограничить процесс аутентификации локальной инфраструктурой, не передавая пароли в облако (ни в каком виде, включая их хэши):
Далее надо ввести учетные данные администратора домена:
А теперь пришло время заняться настройкой федерации.
Настройки федерации
Первым делом подгружаем сертификат, который мы успели получить в статье (Exchange Hybrid — Подготовка серверов федерации):
Далее указываем сервер федерации. У меня пока что он один (adfs01.bq.local):
А на следующем шаге сервер WAP (в моем случае это rpx01.bq.local):
Указываем учетную запись службы AD FS (или создаем новую автоматически, прописав креды администратора предприятия):
На завершающих этапах выбираем домен для объединения в федерацию:
Осталось только все проверить и запустить.
Проверка и применение
Если что-то нужно поменять или убрать, самое время это сделать, потому что сразу после нажатия кнопки Установить начнется настройка инфраструктуры:
После некоторого ожидания, если все прошло успешно, увидите подобную страничку:
Тем не менее, не всегда все идет по плану. Если вы столкнулись с ошибками, то глава ниже специально для вас, а развертывание AADC на этом завершено, не забудьте настроить регулярное резервное копирование вашего нового сервера.
Устранение проблем
Процесс развертывания Azure AD Connect достаточно простой и на редкость качественно задокументирован. Несмотря на это, мне встретилась куча ошибок и некоторые из них я собираюсь разобрать ниже.
Проблема с DNS
На конечных этапах настройки может возникнуть ошибка, указывающая на проблемы с установкой отношений доверия со службой федерации. Её текст следующий:
Произошла ошибка при выполнении команды “Install-WebApplicationProxy”. При попытке установления отношений доверия со службой федерации произошла ошибка. Ошибка: Gateway Time-out
Exception Data (Raw): Microsoft.Online.Deployment.PowerShell.PowerShellInvocationException: Произошла ошибка при выполнении команды “Install-WebApplicationProxy”. При попытке установления отношений доверия со службой федерации произошла ошибка. Ошибка: Gateway Time-out —> System.Management.Automation.RemoteException: При попытке установления отношений доверия со службой федерации произошла ошибка. Ошибка: Gateway Time-out
А в визарде AADC она выглядит так:
Причина заключается в том, что основное имя федерации с сервера WAP должно разрешаться во внутренний адрес сервера AD FS. Об этом я упоминал в статье Exchange Hybrid — Подготовка серверов федерации.
Элемент “ma-run-data” не найден
Полный текст ошибки в логах не говорит абсолютно ни о чем. Тем не менее, вот он:
Exception Data (Raw): System.Management.Automation.CmdletInvocationException: Элемент “ma-run-data” не найден., строка 1, позиция 2. —> Microsoft.IdentityManagement.PowerShell.ObjectModel.SynchronizationConfigurationValidationException: Элемент “ma-run-data” не найден., строка 1, позиция 2.
А выглядит это вот так:
В этом случае не остается ничего, кроме полного удаления AADC и установки заново с нуля.
Синхронизация не выполнялась
Объективно это даже не ошибка, а скорее состояние. Установка AADC завершилась успешно и вы открываете список учетных записей Azure AD, чтобы убедиться, что среди них появились синхронизированные копии учеток из вашей локальной инфраструктуры, но не обнаруживаете их.
Состояния синхронизации выглядит следующим образом:
Причин такого состояния может быть множество, некоторые из них я распишу ниже.
1. Во-первых, не лишним будет проверить коннекторы на предмет некорректных учетных данных. Для этого запустите с правами администратора утилиту miisclient.exe, которую вы можете найти в каталоге:
1 |
C:\Program Files\Microsoft Azure AD Sync\UIShell |
В открывшемся окне справа внизу будет статус соединений, нажмите на него:
Чтобы изменить имя/пароль учетной записи, пройдите на вкладку Connectors и дважды щелкните на соединителе с типом Active Directory Domain Services (у меня он имеет имя bq.local – точно по имени основного домена). В открывшемся окне вам будет нужна вкладка Connect to Active Directory Forest:
Смело вводите правильный пароль и применяйте изменения.
2. Вторая возможная причина, по которой могут быть проблемы с синхронизацией – состояние основной учетной записи Microsoft, с помощью которой вы изначально разворачивали инфраструктуру. Дело в том, что исключительно из-за интереса я залогинился под этой учеткой и обнаружил, что она заблочена за рассылку спама! Как такое могло случиться с учетной записью, которая была создана буквально день назад, мне до сих пор непонятно.
Разумеется после разблокировки учетной записи новых подобных инцидентов не последовало. К слову, изначально был установлен более чем надежный пароль, я всегда пользуюсь генератором максимально сложных паролей, с разными регистрами букв и спецсимволами. Тем не менее, вот такая история приключилась. Никогда не списывайте со счетов подобный вариант развития событий.