Синхронизация Office 365 с AD DS, использование AD FS 2.0 для создания Single Sign-On

в 14:05, , рубрики: FIM 2010 R2, microsoft, office 365, SSO, метки: , , ,

Добрый день, хотелось бы поделиться с Вами нажитыми знаниями в этой области.
Эта статья вряд ли пригодится опытным администраторам или инженерам, во всем этом можно разобраться с помощью бинга гугла и терпения, но бывает что сроки поджимают, тема не интересна или какие-то другие обстоятельства вмешиваются в рабочий процесс. Кроме того у меня нет возможности сделать скриншоты всего и вся, потому частично они будут натыканы с веба, но процесс установки большинства компонентов сводится к тыканью кнопки далее до умопомраченья.

Риски

Нулевые, синхронизация односторонняя, в случае если начальству не понравилосьничего не заработалоне выделили денегвсе сломалось — останавливаем DirSync и AD FS, Удаляем DirSync, удаляем MSOL_AD_Sync аккаунт в AD DS, удаляем синхронизированные аккаунты из Office 365. Если почта переехала можно настроить форвардинг обратно.

Минимальные требования к инфраструктуре

Сервер для AD FS, Windows Server 2008 или выше, член домена, не домен контроллер
Сервер для DirSync'А (утилита от Microsoft для синхронизации AD DS и Office 365), Windows Server 2003 или выше, член домена, не домен контроллер, NET Framework 3.0 или 3.5 и Powershell
AD DS 2003 mixednative mode или выше, из одного леса. Учетная запись enterprise администратора в домене. Она используется только для создания MSOL_AD_Sync, логинпароль не сохраняются нигде в DirSync'e. Аккаунту выдаются права на чтение и синхронизацию изменений в AD DS.
Учетная запись администратора для Office 365, домен верифицированный в Office 365. Доменное имя может не совпадать с верифицированным доменом, в этом случае нужно просто добавить UPN суффикс домена и привязать пользователей к этому суффиксу.
Сертификат для публикации AD FS (для тестирования сойдет любой, хоть самоподписанный)

Примечание: DirSync работает по портам 80 и 443, не умеет авторизоваться на прокси серверах, для него нужно будет делать отдельную «дырку» в прокси сервере. Для синхронизации более чем 50.000 пользователей потребуется устанавливать полноценный SQL сервер.

Office 365

Вначале нужно активировать синхронизацию с AD DS, этот шаг удобно делать первым, так как включение синхронизации займет до 24 часов (на практике меньше), этого времени более чем достаточно чтобы настроить и подготовить остальные компоненты участвующие в синхронизации.

1. Заходим на портал Office 365, в раздел пользователи.
2. Ищем «Active Directory Synchronization» и жмем кнопку «Set up»
3. В открывшемся окне под пунктом номер 3 включаем синхронизацию нажав на «Activate»
4. В пункте 4 качаем DirSync.

AD FS

Перед установкой AD FS, нужно импортировать или сгенерировать доменный или самозаверенный сертификат) сертификат, который будет использоваться для публикации AD FS, в IIS.

Качаем AD FS 2.0, устанавливаем, нам нужен именно AD FS Server, не AD FS Server Proxy. После установки AD FS 2.0 идем в IIS и привязываем сайт AD FS к 443 порту и сертификату.
Примечание: Рекомендуется убрать привязку к 80 порту и в настройках сайта включить «Require SSL». Все это делается интуитивно через интерфейс IIS Management.

Далее заходим в AD FS 2.0 Management Console и запускаем AD FS 2.0 Server Configuration Wizard или C:Program FilesActive Directory Federation Services 2.0FsConfigWizard.exe. Собственно далее-далее-далее-далее… Устанавливать необходимо ферму, сервис аккаунт для AD FS желателен, минимальные дополнительные разрешения необходимые для его работы — право «write» на OU «Program Data».

Проверить можно пройдя по ссылке _https://adfs_server_name/adfs/ls/idpinitiatedsignon.aspx

Установка DirSync

Процесс очень простой, далее-далее-далее-завершить. После установки откроется конфигурейшн визард. Опять же, довольно тривиальный, на втором пункте нужно указать учетную запись администратора Office 365 (синхронизация с AD DS должна быть включена на этот момент), на третьем пункте указать учетную запись энтерпрайз администратора. В четвертом пункте Вам предложат включить «Rich Coexistance», но его в рамках этой статьи я рассматривать не буду. После инсталляции можно убрать галочку «Synchronize directories now», это позволит не проводить синхронизацию сейчас, но синхронизация производится по расписанию каждые 3 часа.

Теперь немного «магии»
C:Program FilesMicrosoft Online Directory SyncSYNCBUSSynchronization ServiceUIShellmiisclient.exe по этому пути лежит спрятанный GUI для DirSync (на деле является обычным Fim Synchronization Service'ом). Если Ваших знаний достаточно Вы можете «поиграться» с настройками, но изменение настроек через GUI не поддерживается Microsoft'ом, если что-то необходимо изменить Microsoft предлагает заново пройти «Configuration wizard». Если Вас не пускает в DirSync GUI нужно просто перелогиниться, Ваш аккаунт был добавлен в Fim Synch Service группу.
Принудительную синхронизацию можно осуществить через DirSync GUI или через powershell:

1. Запускаем повершелл
2. cd C:Program FilesMicrosoft Online Directory Sync
3. .DirSyncConfigShell.psc1
4. В новом окне Start-OnlineCoexistenceSync
результаты можно посмотреть через Event Log иили на портале Office 365.
Синхронизация Office 365 с AD DS, использование AD FS 2.0 для создания Single Sign On

Для тестового запуска можно выбрать какие OU будут синхронизированы. Для этого заходим в GUI, дважды кликаем в SourceAD менеджмент агент, в пункте «Connect to Active Directory forest» кликаем «Containers» и выбираем нужные контенеры. Если у Вас несколько доменов, то выбираем нужный домен из списка и кликаем «Containers». Повторяем с каждым доменом.
Примечание: Если Вы не сделаете этого в Office 365 «уйдут» все аккаунты из всех OU. Включая сервисные аккаунты и «built-in» аккаунты.

Связка AD FS 2.0 — Office 365

Качаем и устанавливаем Sign-in Assistant и powershell модуль для работы с Office 365 на сервер AD FS. В меню пуск и на рабочем столе появится новый ярлык, powershell для работы с Office 365 (можно использовать «обычный» powershell предварительно сделав import-module MSOnline).

Делаем домен федеративным:
1. $cred=Get-Credential — в появившемся окне вбиваем логинпароль административной учетной записи Office 365.
2. Connect-MsolService –Credential $cred — подключаемся к Office 365.
3. Set-MsolADFSContext –Computer <AD FS 2.0 server name> — опциональный шаг, нужен только если Вы запускаете powershell не с компьютера на котором установлен AD FS Server.
4. Convert-MSOLDomainToFederated – domainname <domain.com> — указывать нужно имя «корневого» домена, если скажем Вам нужно конвертировать office365.domain.com, у Вас должен быть верифицированы домены office365.domain.com и domain.com. Но при конвертации домена нужно указывать domain.com, а не office365.domain.com. Сконвертируется домен и все поддомены.
Примечание: После этой операции пользователи НЕ смогут пользоваться Office 365 если связка AD FS — Office 365 не настроена или настроена не правильно, тк домен уже стал федеративным.
5. Update-MSOLFederatedDomain –domainname <domain.com>

Если все проделано правильно зайдя на страницу логина Office 365 Вы увидите что поле пароля более не доступно.
Синхронизация Office 365 с AD DS, использование AD FS 2.0 для создания Single Sign On

Публикация AD FS Server с помощью ISA или TMG

Публикуется как обычный веб сайт, но есть пара нюансов:
1. Block high-bit characters и verify normalization в свойствах протокола https должны быть выключены.
2. Link Translation должен быть выключен.
3. В настройках правила должна стоять галочка «request appear to come from the ISA server computer'»
4. В настройках прослушивателя нужно обязательно добавить сертификат который Вы импортировали в IIS при установке AD FS.

После публикации можно проверить работу через портал Office 365 или страницу outlook.com. Отличный сайт для траблшутинга SSO.
Примечание: Чтобы пользователи работали им нужно назначить лицензии, для тестового пользователя лицензию можно назначить «руками». Для массового добавления лицензий пользователям можно использовать powershell.

Итоги

В итоге получается рабочая инфраструктура где пользователи могут логиниться в Office 365 используя свой почтовый ящик и пароль от «компьютера». Все пароли хранятся в Вашем AD DS. Пароли не синхронизируются (для того и нужен AD FS). Все изменения сведений о пользователях делаются в Вашем родном AD DS и реплицируются в Office 365 автоматически.

Надеюсь статья кому-то пригодится.
Опыт был получен как «побочный» при работе с FIM 2010, жаль что у нас нету коммунити вокруг этой программы, я планирую в дальнейшем написать про FIM.

Автор: 4c74356b41

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js