如何同步生命周期工作流特性

工作流包含特定任务,这些任务可以根据指定的执行条件对用户自动运行。 Microsoft Entra ID 中的 employeeHireDate 和 employeeLeaveDateTime 用户属性支持自动工作流计划。

若要充分利用生命周期工作流,应自动执行用户预配,并应同步计划相关特性。

计划相关特性

下表显示了计划(触发器)相关特性和支持的同步方法。

Attribute 类型 HR 入站预配支持 Microsoft Entra Connect 云同步中的支持 Microsoft Entra Connect 同步中的支持
employeeHireDate DateTimeOffset
employeeLeaveDateTime DateTimeOffset

注意

为仅限云的用户手动设置 employeeLeaveDateTime 需要特殊权限。 有关详细信息,请参阅:为用户配置 employeeLeaveDateTime 属性

本文档介绍如何为所需属性设置从本地 Microsoft Entra Connect 云同步或 Microsoft Entra Connect 进行的同步。

注意

Active Directory 中没有对应的 EmployeeHireDate 或 EmployeeLeaveDateTime 特性。 如果要从本地 AD 同步,则需要标识 AD 中可以使用的属性。 此特性必须是字符串。

了解 EmployeeHireDate 和 EmployeeLeaveDateTime 格式设置

EmployeeHireDate 和 EmployeeLeaveDateTime 包含必须以特定方式设置格式的日期和时间。 这意味着,可能需要使用表达式将源特性的值转换为 EmployeeHireDate 或 EmployeeLeaveDateTime 接受的格式。 下表概述了预期格式,并提供了有关如何转换值的示例表达式。

方案 表达式/格式 目标 更多信息
Workday 到 Azure Active Directory 的用户预配 FormatDateTime([StatusHireDate], ,"yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ") 本地 AD 字符串特性 Workday 的特性映射
SuccessFactors 到 Active Directory 域服务用户预配 FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyyMMddHHmmss.fZ") 本地 AD 字符串特性 SAP Success Factors 的特性映射
自定义导入到 Active Directory 必须采用“yyyyMmddHmmss.fZ”格式 本地 AD 字符串特性 任何其他记录系统的属性映射
Microsoft Graph 用户 API 必须采用“YYYY-MM-DDThh:mm:ssZ”格式 EmployeeHireDate 和 EmployeeLeaveDateTime
Workday 到 Microsoft Entra 用户预配 可以使用直接映射。 不需要使用表达式,但可将其用于调整 EmployeeHireDate 和 EmployeeLeaveDateTime 的时间部分 EmployeeHireDate 和 EmployeeLeaveDateTime
SuccessFactors 到 Microsoft Entra 用户预配 可以使用直接映射。 不需要使用表达式,但可将其用于调整 EmployeeHireDate 和 EmployeeLeaveDateTime 的时间部分 EmployeeHireDate 和 EmployeeLeaveDateTime

有关表达式的详细信息,请参阅在 Microsoft Entra ID 中编写属性映射表达式的参考

在该表的表达式示例中,SAP 使用 endDate,Workday 使用 StatusHireDate。 但可以选择使用其他特性。

例如,Workday 可以使用 StatusContinuousFirstDayOfWork,而不使用 StatusHireDate。 在此例中,表达式将为:

FormatDateTime([StatusContinuousFirstDayOfWork], , "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ")

下表列出了推荐使用的特性及其方案建议。

HR 特性 HR 系统 方案 Microsoft Entra 属性
StatusHireDate Workday 入职者 EmployeeHireDate
StatusContinuousFirstDayOfWork Workday 入职者 EmployeeHireDate
StatusDateEnteredWorkforce Workday 入职者 EmployeeHireDate
StatusOriginalHireDate Workday 入职者 EmployeeHireDate
StatusEndEmploymentDate Workday 离职者 EmployeeLeaveDateTime
StatusResignationDate Workday 离职者 EmployeeLeaveDateTime
StatusRetirementDate Workday 离职者 EmployeeLeaveDateTime
StatusTerminationDate Workday 离职者 EmployeeLeaveDateTime
startDate SAP SF 入职者 EmployeeHireDate
firstDateWorked SAP SF 入职者 EmployeeHireDate
lastDateWorked SAP SF 离职者 EmployeeLeaveDateTime
endDate SAP SF 离职者 EmployeeLeaveDateTime

有关更多特性,请参阅 Workday 特性参考SAP SuccessFactors 特性参考

时间的重要性

要确保计划工作流的计时准确度,请务必考虑以下事项:

  • 必须对特性的时间部分进行相应设置,例如,employeeHireDate 中的时间应为一天的开始时间(如凌晨 1 点或 5 点),employeeLeaveDateTime 中的时间应为一天的结束时间(如晚上 9 点 或 11 点)
  • 工作流的运行时间不会早于该特性中指定的时间,但租户计划(默认为 3小时)可以延迟工作流的运行。 例如,如果将 employeeHireDate 设置为早上 8 点,但租户计划不会在早上 9 点之前运行,则在早上 9 点之前不会处理工作流。 如果新员工在上午 8 点入职,则需将时间设置为类似(开始时间 - 租户计划)的时间以确保员工到达之前计划运行。
  • 如果使用临时访问密码 (TAP),建议将最长生存期设置为 24 小时。 此操作将有助于确保在将 TAP 发送给可能处于不同时区的员工后其不会过期。 有关详细信息,请参阅在 Microsoft Entra ID 中配置临时访问密码,以注册无密码身份验证方法
  • 导入数据时,应了解源是否以及如何为用户提供时区信息,方便其进行调整以确保计时准确性。

在 Microsoft Entra Connect 云同步中为 EmployeeHireDate 创建自定义同步规则

以下步骤可指导你使用云同步创建同步规则。

  1. 在 Microsoft Entra 管理中心,浏览到 >“混合管理>”“Microsoft Entra Connect”。
  2. 选择“管理 Microsoft Entra Connect 云同步”
  3. 在“配置”下选择你的配置。
  4. 选择“单击以编辑映射”。 单击此链接会打开“特性映射”屏幕。
  5. 选择“添加属性”。
  6. 填充以下信息:
    • 映射类型:直接
    • 源特性:msDS-cloudExtensionAttribute1
    • 默认值:留空
    • 目标特性:employeeHireDate
    • 应用此映射:始终云属性映射的屏幕截图。
  7. 选择“应用”。
  8. 返回到“特性映射”屏幕,应会看到新的特性映射。
  9. 选择“保存架构”。

有关属性的详细信息,请参阅Microsoft Entra Connect 云同步中的属性映射

如何在 Microsoft Entra Connect 中为 EmployeeHireDate 创建自定义同步规则

以下示例可引导你设置一个自定义同步规则,该规则会将 Active Directory 属性同步到 Microsoft Entra ID 中的 employeeHireDate 属性。

  1. 以管理员身份打开 PowerShell 窗口并运行 Set-ADSyncScheduler -SyncCycleEnabled $false 以禁用计划程序。
  2. 转到“开始”\“Microsoft Entra Connect”\,然后打开同步规则编辑器
  3. 确保顶部的方向设置为“入站”。
  4. 选择“添加规则”。
  5. 在“创建入站同步规则”屏幕上,输入以下信息,然后选择“下一步”。
    • 名称:In from AD - EmployeeHireDate
    • 连接系统:contoso.com
    • 连接的系统对象类型:user
    • Metaverse 对象类型:person
    • 优先级:20创建入站同步规则基本信息的屏幕截图。
  6. 在“范围筛选器”屏幕上,选择“下一步”。
  7. 在“加入规则”屏幕上,选择“下一步”。
  8. 在“转换”屏幕的“添加转换”下,输入以下信息。
    • FlowType:Direct
    • 目标特性:employeeHireDate
    • 源:msDS-cloudExtensionAttribute1创建入站同步规则转换的屏幕截图。
  9. 选择 添加
  10. 在同步规则编辑器中,确保顶部的方向设置为“出站”。
  11. 选择“添加规则”。
  12. 在“创建出站同步规则”屏幕上,输入以下信息,然后选择“下一步”。
    • 名称:输出到 Microsoft Entra ID - EmployeeHireDate
    • 连接的系统:<租户>
    • 连接的系统对象类型:user
    • Metaverse 对象类型:person
    • 优先级:21
  13. 在“范围筛选器”屏幕上,选择“下一步”。
  14. 在“加入规则”屏幕上,选择“下一步”。
  15. 在“转换”屏幕的“添加转换”下,输入以下信息。
    • FlowType:Direct
    • 目标特性:employeeHireDate
    • 源:employeeHireDate创建出站同步规则转换的屏幕截图。
  16. 选择 添加
  17. 关闭同步规则编辑
  18. 运行 Set-ADSyncScheduler -SyncCycleEnabled $true 以再次启用计划程序。

注意

  • msDS-cloudExtensionAttribute1 是一个示例源。
  • Microsoft Entra Connect 2.0.3.0起,employeeHireDate 将会添加到默认的“传入至 Microsoft Entra”规则,因此,无需执行步骤 10-16。
  • Microsoft Entra Connect 2.1.19.0起,employeeLeaveDateTime 将会添加到默认的“传入至 Microsoft Entra”规则,因此,无需执行步骤 10-16。

有关详细信息,请参阅如何自定义同步规则更改默认配置

在预配应用程序中编辑属性映射

设置预配应用程序后,即可编辑其属性映射。 创建应用后,你会获得 HRM 和 Active Directory 之间的默认映射列表。 在此处,可以编辑现有映射,也可以添加新映射。

要更新此映射,需要执行以下操作:

  1. 至少以全局管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“企业应用程序”。

  3. 打开预配的应用程序。

  4. 依次选择“预配”、“编辑属性映射”。

  5. 依次选择“显示高级选项”、“编辑本地 Active Directory 的属性列表”编辑本地属性屏幕截图。

  6. 添加源特性或创建为类型字符串的特性,然后选择所需的复选框。 源 API 列表的屏幕截图。

    注意

    添加的源属性的数量和名称取决于要从 Active Directory 同步的属性。

  7. 选择“保存”。

  8. 必须在此处将 HRM 属性映射到添加的 Active Directory 属性。 为此,请使用表达式新增映射。

  9. 表达式必须与了解 EmployeeHireDate 和 EmployeeLeaveDateTime 格式设置部分中的格式匹配。 设置属性格式的屏幕截图。

  10. 选择“确定”。

如何在 Microsoft Entra ID 中验证这些属性值

要查看 Microsoft Entra ID 中用户对象的这些属性上设置的值,可以使用Microsoft Graph PowerShell SDK。 例如:

# Import Module
Import-Module Microsoft.Graph.Users

# Define the necessary scopes
$Scopes =@("User.Read.All", "User-LifeCycleInfo.Read.All")

# Connect using the scopes defined and select the Beta API Version
Connect-MgGraph -Scopes $Scopes


# Query a user, using its user ID, and return the desired properties
$user = Get-MgUser -UserID "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" -Property EmployeeLeaveDateTime
$User.EmployeeLeaveDateTime

结果的屏幕截图。

后续步骤