如何同步生命周期工作流特性
工作流包含特定任务,这些任务可以根据指定的执行条件对用户自动运行。 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 创建自定义同步规则
以下步骤可指导你使用云同步创建同步规则。
- 在 Microsoft Entra 管理中心,浏览到 >“混合管理>”“Microsoft Entra Connect”。
- 选择“管理 Microsoft Entra Connect 云同步”。
- 在“配置”下选择你的配置。
- 选择“单击以编辑映射”。 单击此链接会打开“特性映射”屏幕。
- 选择“添加属性”。
- 填充以下信息:
- 映射类型:直接
- 源特性:msDS-cloudExtensionAttribute1
- 默认值:留空
- 目标特性:employeeHireDate
- 应用此映射:始终
- 选择“应用”。
- 返回到“特性映射”屏幕,应会看到新的特性映射。
- 选择“保存架构”。
有关属性的详细信息,请参阅Microsoft Entra Connect 云同步中的属性映射。
如何在 Microsoft Entra Connect 中为 EmployeeHireDate 创建自定义同步规则
以下示例可引导你设置一个自定义同步规则,该规则会将 Active Directory 属性同步到 Microsoft Entra ID 中的 employeeHireDate 属性。
- 以管理员身份打开 PowerShell 窗口并运行
Set-ADSyncScheduler -SyncCycleEnabled $false
以禁用计划程序。 - 转到“开始”\“Microsoft Entra Connect”\,然后打开同步规则编辑器
- 确保顶部的方向设置为“入站”。
- 选择“添加规则”。
- 在“创建入站同步规则”屏幕上,输入以下信息,然后选择“下一步”。
- 名称:In from AD - EmployeeHireDate
- 连接系统:contoso.com
- 连接的系统对象类型:user
- Metaverse 对象类型:person
- 优先级:20
- 在“范围筛选器”屏幕上,选择“下一步”。
- 在“加入规则”屏幕上,选择“下一步”。
- 在“转换”屏幕的“添加转换”下,输入以下信息。
- FlowType:Direct
- 目标特性:employeeHireDate
- 源:msDS-cloudExtensionAttribute1
- 选择 添加 。
- 在同步规则编辑器中,确保顶部的方向设置为“出站”。
- 选择“添加规则”。
- 在“创建出站同步规则”屏幕上,输入以下信息,然后选择“下一步”。
- 名称:输出到 Microsoft Entra ID - EmployeeHireDate
- 连接的系统:<租户>
- 连接的系统对象类型:user
- Metaverse 对象类型:person
- 优先级:21
- 在“范围筛选器”屏幕上,选择“下一步”。
- 在“加入规则”屏幕上,选择“下一步”。
- 在“转换”屏幕的“添加转换”下,输入以下信息。
- FlowType:Direct
- 目标特性:employeeHireDate
- 源:employeeHireDate
- 选择 添加 。
- 关闭同步规则编辑
- 运行
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 之间的默认映射列表。 在此处,可以编辑现有映射,也可以添加新映射。
要更新此映射,需要执行以下操作:
以全局管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”。
打开预配的应用程序。
依次选择“预配”、“编辑属性映射”。
依次选择“显示高级选项”、“编辑本地 Active Directory 的属性列表”。
添加源特性或创建为类型字符串的特性,然后选择所需的复选框。
注意
添加的源属性的数量和名称取决于要从 Active Directory 同步的属性。
选择“保存”。
必须在此处将 HRM 属性映射到添加的 Active Directory 属性。 为此,请使用表达式新增映射。
表达式必须与了解 EmployeeHireDate 和 EmployeeLeaveDateTime 格式设置部分中的格式匹配。
选择“确定”。
如何在 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