Подробный гайд: Атрибут dateOfHire в Active Directory

Полный технический гайд по хранению, настройке и синхронизации атрибута даты найма (employeeHireDate) из локальной AD в облако Microsoft Entra ID.

2026.09.29                  


Подробный гайд: Атрибут dateOfHire в Active DirectoryПодробный гайд: Атрибут dateOfHire в Active Directory

1. Главный нюанс: Стандартная схема Active Directory

Самое важное, что нужно знать системному администратору: в стандартной схеме локального Active Directory (AD DS) атрибутов dateOfHire или employeeHireDate просто не существует.

Однако в облачном Microsoft Entra ID (бывший Azure AD) атрибут employeeHireDate присутствует нативно. Он критически важен для автоматизации жизненного цикла сотрудников (Lifecycle Workflows), таких как автоматический онбординг или оффбординг. Поскольку локального атрибута нет, администраторам приходится использовать обходные пути для хранения даты найма в AD с последующей синхронизацией в облако.




2. Способы хранения даты найма в локальном AD

Способ А: Использование Extension Attributes (Рекомендуемый)

В схеме AD по умолчанию есть 15 универсальных атрибутов (extensionAttribute1 – extensionAttribute15). Они не требуют изменения схемы и абсолютно безопасны.

* Как использовать:

Вы можете закрепить за собой правило, что, например, extensionAttribute1 всегда хранит дату найма сотрудника в формате YYYY-MM-DD.

* Плюсы:

Не нужно быть Schema Admin, нет риска "сломать" лес AD.


Способ Б: Расширение схемы AD (Schema Extension)

Если вам принципиально нужен атрибут с говорящим именем dateOfHire или employeeHireDate в локальной AD.

Как использовать:

  1. Зайти на контроллер домена с правами Schema Admins.
  2. Зарегистрировать schmmgmt.dll и открыть оснастку "Active Directory Schema".
  3. Создать новый Attribute (Syntax: Unicode String или UTC Coded Time).
  4. Добавить его в класс User.

Минусы:

Требует высоких привилегий, необратимо (атрибут нельзя удалить из схемы, только деактивировать).


Способ В: Использование полей HR-систем через SCIM

Если ваша компания использует Workday, SAP SuccessFactors или BambooHR, дата найма хранится там, а в AD она вообще не пишется, а сразу летит в Entra ID через механизмы Cloud Provisioning.


3. Синхронизация с Microsoft Entra ID (Azure AD Connect)

Чтобы облачные сервисы знали дату найма, значение из локальной AD нужно синхронизировать в атрибут employeeHireDate в Entra ID.

Настройка через Azure AD Connect Sync:

  1. Откройте Synchronization Rules Editor на сервере с Azure AD Connect.
  2. Создайте новое Inbound Rule (Правило входящей синхронизации).
  3. Scoping Filter: Оставьте пустым или ограничьте нужными OU.
  4. Transformations:
    • Создайте правило преобразования (Flow Type: Expression или Direct).
    • В качестве источника укажите ваш атрибут (например, extensionAttribute1).
    • Target: employeeHireDate.
    • Важно: Так как в облаке этот атрибут имеет тип DateTimeOffset, строку из AD часто нужно приводить к формату ISO 8601 (например, 2023-10-01T00:00:00Z) с помощью выражений (Expressions) в редакторе правил.
  5. Запустите полную синхронизацию через PowerShell: Start-ADSyncSyncCycle -PolicyType Initial.

Примечание:

Начиная с версии Azure AD Connect 2.1.20.0, поддержка синхронизации employeeHireDate и EmployeeLeaveDateTime была официально улучшена и вынесена в отдельные настройки.


4. Работа через PowerShell

Для массового заполнения или чтения даты найма используйте модуль ActiveDirectory.

Чтение атрибута:

Get-ADUser -Identity "d.sergeevich" -Properties extensionAttribute1 | Select-Object Name, extensionAttribute1

Запись даты найма (для Способа А):

Set-ADUser -Identity "d.sergeevich" -Replace @{extensionAttribute1="2023-09-15"}

Массовое обновление из CSV:

Import-Csv "C:\hr_data.csv" | ForEach-Object {
    Set-ADUser -Identity $_.SamAccountName -Replace @{extensionAttribute1=$_.HireDate}
}

5. Использование в Microsoft Entra ID (Зачем это всё нужно?)

После того как дата попадет в employeeHireDate в облаке, вы сможете использовать её для следующих задач:

1. Lifecycle Workflows (Entra ID Governance):

Автоматическая отправка приветственного письма, создание учетных записей и выдача доступов до фактического дня выхода сотрудника (Pre-Hire).

2. Динамические группы (Dynamic Groups):

Группы, которые автоматически включают сотрудников, нанятых в последние 30 дней (для рассылок онбординга).



3. Conditional Access:

Ограничение доступа для "новых" сотрудников, пока они не пройдут обязательное обучение или MFA.

4. Viva Connections / SharePoint:

Отображение "Юбилея работы" (Work Anniversaries) в корпоративном портале и новостных лентах.


6. Рекомендации (Best Practices)

1. Единый источник правды (Single Source of Truth):

В современных инфраструктурах AD не должна быть первоисточником данных о найме.

Идеальная схема: HR-система (1С, Workday) -> Microsoft Entra ID (через API/SCIM) -> Azure AD Connect (обратная синхронизация в AD, если это требуется для легаси-приложений).

2. Формат даты:

Всегда используйте стандарт ISO 8601 (YYYY-MM-DD или YYYY-MM-DDThh:mm:ssZ), так как облачные API Microsoft Graph требуют именно его для корректного парсинга.

3. Аудит:

Настройте сбор логов изменения extensionAttribute1 (или кастомного атрибута), чтобы отслеживать, кто и когда меняет даты найма в обход HR-отдела.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта