Синхронизация пользователей и групп с каталогом LDAP
Если в вашей компании развернута служба федерации Active Directory, вы можете настроить автоматическую синхронизацию сотрудников и групп с Яндекс 360 для бизнеса — для этого нужно установить и настроить специальную службу Windows.
Другие каталоги LDAP будут полноценно поддержаны в будущем, когда утилита YandexADSCIM будет портирована на *nix платформы. Сейчас ее можно использовать для настройки работы с другими каталогами LDAP, но запускать нужно на устройстве с OC Windows.
Подключить и настроить утилиту ADSCIM
Шаг 1. Начните настройку
- Проверьте, что единый вход (SSO) подключен и правильно работает.
- Задайте уникальный идентификатор пользователя — выберите атрибут Active Directory для передачи в параметр утилиты ADSCIM PropertyLoginName, чтобы внести его в каталог Яндекс.Внимание. Атрибут, который вы зададите в качестве основного идентификатора, не должен меняться. Пользователь с другим атрибутом при входе будет считаться новым пользователем.
- Если ваши пользователи уже используют сервисы Яндекс 360 и проходят аутентификацию с помощью протокола SAML 2.0, например, в Active Directory или Keycloak, убедитесь, что указанное в поле Incoming claim type значение атрибута NameID соответствует основному идентификатору утилиты ADSCIM PropertyLoginName:
- UPN (userPrincipalName в ADSCIM) – если имена для входа пользователей не будут меняться;
- objectSID, objectGUID или другой — если запланированы изменения домена или бизнес-процессов, которые могут привести к изменению UPN пользователей.
Больше информации про PropertyLoginName см. в шаге 4, п. 2.5.
- Проверьте, что у пользователей в Active Directory заполнены атрибуты:
- идентификатор, выбранный в качестве основного;
- User SamAccountName;
- E-mail.
Шаг 2. Получите Client ID и OAuth-токен
- Перейдите на страницу создания приложения.
- Введите название сервиса и прикрепите его иконку.
- В блоке Платформы приложения выберите Веб-сервисы. В поле Redirect URI нажмите ссылку Подставить URL для отладки.
- В блоке Доступ к данным в начале строки введите название доступа Управление федерациями.
- Укажите почту для связи. Внизу страницы нажмите Создать приложение.
Отправьте POST-запрос, чтобы получить OAuth-токен. Например, через cURL это можно сделать при помощи следующей команды:
curl -X POST https://oauth.yandex.ru/token -d "grant_type=client_credentials&client_id=значение1&client_secret=значение2"
Скопировано(значение параметра
client_id
— это ID созданного приложения, аclient_secret
— его Секретный ключ)- Сохраните полученные ID и OAuth-токен. Они пригодятся на следующих шагах.
Шаг 3. Укажите Client ID в Яндекс 360 и получите Domain ID
- Откройте Яндекс 360 для бизнеса.
- Перейдите в раздел.
- Нажмите Настроить.
- В блоке Синхронизация SCIM вставьте ID вашего приложения, полученный на шаге 2.
- Скопируйте ваш Domain ID, он пригодится на следующем шаге.
- Сохраните изменения.
Шаг 4. Установите и настройте службу Windows для синхронизации
- Скачайте и установите службу YandexADSCIM.
Найдите и откройте в любом текстовом редакторе конфигурационный файл —
%ProgramData%\Yandex\YandexADSCIM\AD_Users.config
Каждая настройка в конфигурационном файле записывается отдельной строкой в формате
ключ=значение
. Строки, которые начинаются с символа#
, служба игнорирует.Проверьте, что в значении параметра LDAP указан правильный путь для подключения к Active Directory. Если нет, исправьте его. Подставьте в поисковые параметры собственные значения.
Для поискового запроса используйте путь из структуры DIT = Directory Information Tree (читается справа налево):LDAP = LDAP://CN=Users,OU=DomainGroup,DC=YourCompanyName,DC=com
DC
– domainComponent, собственный домен и доменная зона;OU
– OrganizationUnit, компания\департамент\отдел, из которого вы хотите получить пользователей;CN
– commonName, наименование объекта, который хотите получить из каталога.
- В значении параметра BearerToken укажите OAuth-токен, полученный на шаге 2.
- В значении параметра DomainID укажите ID домена, полученный на шаге 3.
Значение параметра DryRun изначально установлено в значение
true
. Если оставить это значение, то на данном этапе служба будет работать в тестовом режиме. Запросы будут фиксироваться в логах, но синхронизация производится не будет. Чтобы включить синхронизацию SCIM уже сейчас, поменяйте значение параметра наfalse
.Синхронизируйте пользовательские данные из Active Directory. Переназначить атрибуты при создании или синхронизации пользователей в Яндекс 360 позволяют параметры, которые начинаются с Property.
Параметр PropertyLoginName, который соответствует идентификатору пользователя, может принимать одно из трех значений:
userPrincipalName
— UPN, значение по умолчанию;objectSID
;objectGUID
.
Значение параметра должно соответствовать значению атрибута NameID в поле Incoming claim type из настроек единого входа (SSO).
Если вы используете атрибут вида
username
, а неusername@domain.com
, то дополнительно укажите параметр IgnoreUsernameDomain со значениемtrue
.Для остальных пользовательских атрибутов:
Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyFirstName Имя givenName Иван PropertyMiddleName Отчество middleName Иванович PropertyLastName Фамилия sn (SurName) Иванов PropertyDisplayName Выводимое имя displayName Иванов И. И. PropertyWorkMail Основная почта mail I_ivanov@domain.ru PropertyTitle Должность title Разработчик PropertyMobilePhoneNumber Мобильный телефон mobile +7 012 345-67-89 PropertyWorkPhoneNumber Рабочий телефон telephoneNumber +7 495 123-45-67 PropertyIpPhoneNumber IP-телефон ipPhone 7495 012-34-56 Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyFirstName Имя givenName Иван PropertyMiddleName Отчество middleName Иванович PropertyLastName Фамилия sn (SurName) Иванов PropertyDisplayName Выводимое имя displayName Иванов И. И. PropertyWorkMail Основная почта mail I_ivanov@domain.ru PropertyTitle Должность title Разработчик PropertyMobilePhoneNumber Мобильный телефон mobile +7 012 345-67-89 PropertyWorkPhoneNumber Рабочий телефон telephoneNumber +7 495 123-45-67 PropertyIpPhoneNumber IP-телефон ipPhone 7495 012-34-56 Параметры, которые начинаются с Property, можно указывать несколько раз — в таком случае значением параметра будет список. Порядок атрибутов при этом важен. Например, для получения фамилии пользователя можно задать атрибуты:
PropertyLastName = surName
,PropertyLastName = sn
,PropertyLastName = lastName
. Если существует атрибутsurName
, будет использовано его значение. Если этого атрибута нет, будет использовано значение атрибутаsn
. Если он также отсутствует — значение атрибутаlastName
.Чтобы ограничить выгрузку пользователей, можно воспользоваться фильтром UsersFilter и применить стандартный синтаксис запросов LDAP.
Чтобы выбрать пользователей по их членству в определенной группе, используйте фильтр:
UsersFilter =(memberOf=CN=groupname,CN=Users,DC=domainname,DC=com)
Если нужно дополнительно исключить из выборки заблокированных в Active Directory пользователей, используйте фильтр:
UsersFilter =(&(memberOf=CN=groupname,CN=Users,DC=domainname,DC=com) (!(userAccountControl:1.2.840.113556.1.4.803:=2)))
В результате синхронизации пользователи, которые зарегистрированы на почтовом домене вашей организации, но не попали в фильтр, будут заблокированы.
Совет. Фильтруйте пользователей только по универсальным группам Active Directory. Использование глобальных или локальных групп в фильтре может привести к некорректным результатам из-за особенностей репликации членства в этих группах для разных доменов.Если нужно, чтобы алиасы почтовых ящиков из Active Directory синхронизировались с Яндекс 360 для бизнеса, добавьте параметр EnableAliases со значением
true
. Доменные почтовые алиасы, которые указаны в Active Directory в атрибуте пользователяproxyAdresses
с типом SMTP, добавятся в аккаунт сотрудника в Яндекс 360 для бизнеса автоматически.Важно. Для корректной синхронизации алиасов версия утилиты YandexADSCIM должна быть 1.1.0.144 или выше.Синхронизируйте группы из Active Directory — добавьте параметр EnableGroups со значением
true
.Чтобы ограничить список групп, можно воспользоваться фильтром GroupsFilter и применить стандартный синтаксис запросов LDAP. Например, чтобы выгрузить все списки рассылок, используйте фильтр:
GroupsFilter =(&(objectClass=group)(!(groupType:1.2.840.113556.1.4.803:=2147483648)))
- Синхронизируйте атрибуты групп из Active Directory. Переназначить атрибуты при создании или синхронизации групп в Яндекс 360 позволяют параметры, которые начинаются с PropertyGroup.
Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyGroupDisplayName Название name Проект интеграции PropertyGroupDescription Описание description Сотрудники, участвующие в проекте интеграции PropertyGroupEmail Рассылка mail int@domain.ru Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyGroupDisplayName Название name Проект интеграции PropertyGroupDescription Описание description Сотрудники, участвующие в проекте интеграции PropertyGroupEmail Рассылка mail int@domain.ru Параметры, которые начинаются с PropertyGroup, можно указывать несколько раз — в таком случае значением параметра будет список. Порядок атрибутов при этом важен. Например, для получения названия группы можно задать атрибуты:
PropertyGroupDisplayName = name
,PropertyGroupDisplayName = cn
. Если существует атрибутname
, будет использовано его значение. Если этого атрибута нет, будет использовано значение атрибутаcn
. Синхронизируйте внешние контакты, если вы используете их в Яндекс 360. Для этого добавьте параметр EnableContacts со значением
true
.Важно. Для корректной синхронизации контактов версия утилиты YandexADSCIM должна быть 1.1.0.156 или выше.По умолчанию в качестве контактов из Active Directory будут синхронизироваться все объекты, удовлетворяющие LDAP-запросу
(&(objectClass=contact))
. Чтобы ограничить список контактов, можно воспользоваться фильтром ContactsFilter и применить стандартный синтаксис запросов LDAP. Например, чтобы выгрузить только контакты из группыgroupname
, используйте фильтр:ContactsFilter = (&(objectClass=contact)(memberOf=CN=groupname,CN=Users,DC=domainname,DC=com))
Синхронизируйте атрибуты контактов из Active Directory. Переназначить атрибуты при создании или синхронизации контактов в Яндекс 360 позволяют параметры, которые начинаются с PropertyContact.
Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyContactFirstName Имя givenName Иван PropertyContactMiddleName Отчество middleName Иванович PropertyContactLastName Фамилия sn (SurName) Иванов PropertyContactTitle Должность title Разработчик PropertyContactDepartment Отдел department Отдел разработки PropertyContactCompany Компания company ООО «Страна чудес» PropertyContactMail Основной email* mail I_ivanov@domain.ru PropertyContactWorkPhone Основной рабочий телефон telephoneNumber +7 495 123-45-67 PropertyContactOtherWorkPhone Другие рабочие телефоны otherTelephone +7 495 765-43-21 PropertyContactMobile Основной мобильный телефон mobile +7 012 345-67-89 PropertyContactOtherMobile Другие мобильные телефоны otherMobile +7 987 654-32-10 PropertyContactIpPhone Основной IP-телефон ipPhone 7495 012-34-56 PropertyContactOtherIpPhone Другие IP-телефоны otherIpPhone 7495 987-65-43 PropertyContactAddress1 Адрес - Улица streetAddress Юбилейная PropertyContactAddress2 Адрес - Город l Подольск PropertyContactAddress3 Адрес - Регион st Московская область PropertyContactAddress4 Адрес - Индекс postalCode 142121 Название параметра утилиты YandexADSCIM Название атрибута (рус) Значение по умолчанию из Active Directory Пример PropertyContactFirstName Имя givenName Иван PropertyContactMiddleName Отчество middleName Иванович PropertyContactLastName Фамилия sn (SurName) Иванов PropertyContactTitle Должность title Разработчик PropertyContactDepartment Отдел department Отдел разработки PropertyContactCompany Компания company ООО «Страна чудес» PropertyContactMail Основной email* mail I_ivanov@domain.ru PropertyContactWorkPhone Основной рабочий телефон telephoneNumber +7 495 123-45-67 PropertyContactOtherWorkPhone Другие рабочие телефоны otherTelephone +7 495 765-43-21 PropertyContactMobile Основной мобильный телефон mobile +7 012 345-67-89 PropertyContactOtherMobile Другие мобильные телефоны otherMobile +7 987 654-32-10 PropertyContactIpPhone Основной IP-телефон ipPhone 7495 012-34-56 PropertyContactOtherIpPhone Другие IP-телефоны otherIpPhone 7495 987-65-43 PropertyContactAddress1 Адрес - Улица streetAddress Юбилейная PropertyContactAddress2 Адрес - Город l Подольск PropertyContactAddress3 Адрес - Регион st Московская область PropertyContactAddress4 Адрес - Индекс postalCode 142121 (*) Неосновные email — адреса с префиксом
smtp:
(proxyAddresses в Active Directory) — переопределить нельзя. Но их можно отключить, добавив параметр ContactIgnoreProxyAddresses со значениемtrue
.Параметры, которые начинаются с PropertyContact, можно указывать несколько раз — в таком случае значением параметра будет список. Порядок атрибутов при этом важен.
Каждый из этих параметров также можно отключить, указав для него в качестве значения символ
-
(минус). Например, чтобы отключить синхронизацию атрибута «Должность», нужно указатьPropertyContactTitle = -
.- Поменяйте значение параметра DryRun на
true
перед первым запуском сервиса, если ранее вы изменяли его наfalse
. Периодичность запуска сервиса определяется параметром UpdateEveryMins = N, где N – интервал в минутах. Запустите сервис через оснастку и проанализируйте файл лога.Системные сообщения в логахУведомление Результат CORE Update user: user@domain.ru (Active:true -> false) Пользователь будет заблокирован. SCIM Update user Изменение атрибутов пользователя в каталоге Яндекс. SCIM Add user Добавление пользователя в каталог Яндекс. CORE Users: added 0, removed 3237, modified 0 Добавлено – 0, заблокировано – 3237, изменено - 0. SCIM GET Users: Response is successful Пользователи успешно зачитаны из каталога Яндекс. AD Received user count: N Из Active Directory загружено N пользователей. AD Received groups count: N Из Active Directory загружено N групп. AD_CONFIG Wrong line N Ошибка в строке 31 конфигурационного файла. AD Received contacts count: N Из Active Directory загружено N контактов. SCIM Add SharedContact: Добавление контакта в каталог Яндекс. Уведомление Результат CORE Update user: user@domain.ru (Active:true -> false) Пользователь будет заблокирован. SCIM Update user Изменение атрибутов пользователя в каталоге Яндекс. SCIM Add user Добавление пользователя в каталог Яндекс. CORE Users: added 0, removed 3237, modified 0 Добавлено – 0, заблокировано – 3237, изменено - 0. SCIM GET Users: Response is successful Пользователи успешно зачитаны из каталога Яндекс. AD Received user count: N Из Active Directory загружено N пользователей. AD Received groups count: N Из Active Directory загружено N групп. AD_CONFIG Wrong line N Ошибка в строке 31 конфигурационного файла. AD Received contacts count: N Из Active Directory загружено N контактов. SCIM Add SharedContact: Добавление контакта в каталог Яндекс.
- Остановите службу и запустите снова, чтобы применить изменения из конфигурационного файла. Для этого в командной строке (
cmd.exe
) введитеsc stop yandexadscim
, а затем —sc start yandexadscim
. Также вы можете сделать это в диспетчере задач на вкладке Службы.
Изменить настройки
Если вы хотите изменить настройки, внесите изменения в конфигурационный файл, а затем перезагрузите службу YandexADSCIM через командную строку или диспетчер задач.
Просмотреть логи
Все логи службы сохраняются в папке %ProgramData%\Yandex\YandexADSCIM
.
Остановить службу
YandexADSCIM — это служба Windows, поэтому исполняется автоматически при запуске системы и не зависит от статуса пользователя. Но вы можете отключить ее вручную — для этого в командной строке введите sc stop yandexadscim
или в диспетчере задач нажмите Остановить.
Если же вы хотите удалить службу насовсем, используйте команду sc delete yandexadscim
.
Возможные ситуации при работе сервиса
Ситуация | Результат |
---|---|
У пользователя изменились атрибуты в Active Directory, но при этом уникальный идентификатор не изменился. | Система обновит атрибуты в каталоге Яндекс (кроме основной почты и NameID). |
У пользователя изменился уникальный идентификатор. | Система не сможет найти объект с исходным идентификатором и заблокирует предыдущего пользователя. Далее система попытается добавить пользователя с новым идентификатором, но не сможет этого сделать, так как логин пользователя уже занят предыдущим. Если удалить заблокированного пользователя, система добавит нового без переноса каких-либо данных со старого. |
Пользователь удален в Active Directory. | Пользователь будет заблокирован в каталоге Яндекс. |
Новый пользователь в Active Directory. | Пользователь будет добавлен в каталог Яндекс с соответствующими атрибутами. |
Все пользователи в каталоге Яндекс заблокированы. | Это могло произойти, если:
|
Ситуация | Результат |
---|---|
У пользователя изменились атрибуты в Active Directory, но при этом уникальный идентификатор не изменился. | Система обновит атрибуты в каталоге Яндекс (кроме основной почты и NameID). |
У пользователя изменился уникальный идентификатор. | Система не сможет найти объект с исходным идентификатором и заблокирует предыдущего пользователя. Далее система попытается добавить пользователя с новым идентификатором, но не сможет этого сделать, так как логин пользователя уже занят предыдущим. Если удалить заблокированного пользователя, система добавит нового без переноса каких-либо данных со старого. |
Пользователь удален в Active Directory. | Пользователь будет заблокирован в каталоге Яндекс. |
Новый пользователь в Active Directory. | Пользователь будет добавлен в каталог Яндекс с соответствующими атрибутами. |
Все пользователи в каталоге Яндекс заблокированы. | Это могло произойти, если:
|
Обновление приложения
Приложение обновляется автоматически: по умолчанию в конфигурационном файле указано значение AutoUpdate = True
либо его нет.
Если вы хотите обновлять приложение вручную, измените значение на AutoUpdate = False
или добавьте его. Чтобы обновить приложение, вам нужно будет скачать последнюю версию YandexADSCIM и запустить установочный файл.