Skip to content

Commit f56106a

Browse files
Merge pull request #251631 from OWinfreyATL/owinfreyATL-SyncAttributesUpdates
Sync attributes updates
2 parents 1e663bc + 5184fc1 commit f56106a

File tree

5 files changed

+65
-40
lines changed

5 files changed

+65
-40
lines changed

articles/active-directory/governance/how-to-lifecycle-workflow-sync-attributes.md

Lines changed: 65 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,20 @@ manager: amycolannino
77
ms.service: active-directory
88
ms.workload: identity
99
ms.topic: overview
10-
ms.date: 09/12/2023
10+
ms.date: 09/18/2023
1111
ms.subservice: compliance
1212
ms.author: owinfrey
1313
ms.collection: M365-identity-device-management
1414
---
1515

1616
# How to synchronize attributes for Lifecycle workflows
17-
Workflows, contain specific tasks, which can run automatically against users based on the specified execution conditions. Automatic workflow scheduling is supported based on the employeeHireDate and employeeLeaveDateTime user attributes in Microsoft Entra ID.
17+
18+
Workflows contain specific tasks, which can run automatically against users based on the specified execution conditions. Automatic workflow scheduling is supported based on the employeeHireDate and employeeLeaveDateTime user attributes in Microsoft Entra ID.
1819

1920
To take full advantage of Lifecycle Workflows, user provisioning should be automated, and the scheduling relevant attributes should be synchronized.
2021

2122
## Scheduling relevant attributes
23+
2224
The following table shows the scheduling (trigger) relevant attributes and the methods of synchronization that are supported.
2325

2426
|Attribute|Type|Supported in HR Inbound Provisioning|Support in Microsoft Entra Connect Cloud Sync|Support in Microsoft Entra Connect Sync|
@@ -37,11 +39,11 @@ This document explains how to set up synchronization from on-premises Microsoft
3739

3840
## Understanding EmployeeHireDate and EmployeeLeaveDateTime formatting
3941

40-
The EmployeeHireDate and EmployeeLeaveDateTime contain dates and times that must be formatted in a specific way. This means that you may need to use an expression to convert the value of your source attribute to a format that will be accepted by the EmployeeHireDate or EmployeeLeaveDateTime. The table below outlines the format that is expected and provides an example expression on how to convert the values.
42+
The EmployeeHireDate and EmployeeLeaveDateTime contain dates and times that must be formatted in a specific way. This means that you may need to use an expression to convert the value of your source attribute to a format that will be accepted by the EmployeeHireDate or EmployeeLeaveDateTime. The following table outlines the format that is expected and provides an example expression on how to convert the values.
4143

4244
|Scenario|Expression/Format|Target|More Information|
4345
|-----|-----|-----|-----|
44-
|Workday to Active Directory User Provisioning|FormatDateTime([StatusHireDate], , "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ")|On-premises AD string attribute|[Attribute mappings for Workday](../saas-apps/workday-inbound-tutorial.md#below-are-some-example-attribute-mappings-between-workday-and-active-directory-with-some-common-expressions)|
46+
|Workday to Active Directory User Provisioning|FormatDateTime([StatusHireDate], "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ")|On-premises AD string attribute|[Attribute mappings for Workday](../saas-apps/workday-inbound-tutorial.md#below-are-some-example-attribute-mappings-between-workday-and-active-directory-with-some-common-expressions)|
4547
|SuccessFactors to Active Directory User Provisioning|FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyyMMddHHmmss.fZ")|On-premises AD string attribute|[Attribute mappings for SAP Success Factors](../saas-apps/sap-successfactors-inbound-provisioning-tutorial.md)|
4648
|Custom import to Active Directory|Must be in the format "yyyyMMddHHmmss.fZ"|On-premises AD string attribute||
4749
|Microsoft Graph User API|Must be in the format "YYYY-MM-DDThh:mm:ssZ"|EmployeeHireDate and EmployeeLeaveDateTime||
@@ -50,7 +52,7 @@ The EmployeeHireDate and EmployeeLeaveDateTime contain dates and times that must
5052

5153
For more information on expressions, see [Reference for writing expressions for attribute mappings in Microsoft Entra ID](../app-provisioning/functions-for-customizing-application-data.md)
5254

53-
The expression examples above use endDate for SAP and StatusHireDate for Workday. However, you may opt to use different attributes.
55+
The expression examples in the table use endDate for SAP and StatusHireDate for Workday. However, you may opt to use different attributes.
5456

5557
For example, you might use StatusContinuousFirstDayOfWork instead of StatusHireDate for Workday. In this instance your expression would be:
5658

@@ -76,79 +78,74 @@ StatusOriginalHireDate|Workday|Joiner|EmployeeHireDate|
7678

7779
For more attributes, see the [Workday attribute reference](../app-provisioning/workday-attribute-reference.md) and [SAP SuccessFactors attribute reference](../app-provisioning/sap-successfactors-attribute-reference.md)
7880

79-
8081
## Importance of time
8182
To ensure timing accuracy of scheduled workflows it’s crucial to consider:
8283

8384
- The time portion of the attribute must be set accordingly, for example the `employeeHireDate` should have a time at the beginning of the day like 1AM or 5AM and the `employeeLeaveDateTime` should have time at the end of the day like 9PM or 11PM
84-
- The Workflows won't run earlier than the time specified in the attribute, however the [tenant schedule (default 3h)](customize-workflow-schedule.md) may delay the workflow run. For instance, if you set the `employeeHireDate` to 8AM but the tenant schedule doesn't run until 9AM, the workflow won't be processed until then. If a new hire is starting at 8AM, you would want to set the time to something like (start time - tenant schedule) to ensure it had run before the employee arrives.
85+
- The Workflows won't run earlier than the time specified in the attribute, however the [tenant schedule (default 3h)](customize-workflow-schedule.md) may delay the workflow run. For instance, if you set the `employeeHireDate` to 8AM but the tenant schedule doesn't run until 9AM, the workflow won't be processed until then. If a new hire is starting at 8AM, you would want to set the time to something like (start time - tenant schedule) to ensure it runs before the employee arrives.
8586
- It's recommended, that if you're using temporary access pass (TAP), that you set the maximum lifetime to 24 hours. Doing this will help ensure that the TAP hasn't expired after being sent to an employee who may be in a different timezone. For more information, see [Configure Temporary Access Pass in Microsoft Entra ID to register Passwordless authentication methods.](../authentication/howto-authentication-temporary-access-pass.md#enable-the-temporary-access-pass-policy)
8687
- When importing the data, you should understand if and how the source provides time zone information for your users to potentially make adjustments to ensure timing accuracy.
8788

8889

89-
<a name='create-a-custom-sync-rule-in-azure-ad-connect-cloud-sync-for-employeehiredate'></a>
90-
9190
## Create a custom sync rule in Microsoft Entra Connect cloud sync for EmployeeHireDate
92-
The following steps will guide you through creating a synchronization rule using cloud sync.
91+
The following steps guide you through creating a synchronization rule using cloud sync.
9392
1. In the Microsoft Entra admin center, browse to > **Hybrid management** > **Microsoft Entra Connect**.
94-
2. Select **Manage Microsoft Entra cloud sync**.
95-
3. Under **Configuration**, select your configuration.
96-
4. Select **Click to edit mappings**. This link opens the **Attribute mappings** screen.
97-
5. Select **Add attribute**.
98-
6. Fill in the following information:
93+
1. Select **Manage Microsoft Entra cloud sync**.
94+
1. Under **Configuration**, select your configuration.
95+
1. Select **Click to edit mappings**. This link opens the **Attribute mappings** screen.
96+
1. Select **Add attribute**.
97+
1. Fill in the following information:
9998
- Mapping Type: Direct
100-
- Source attribute: extensionAttribute1
99+
- Source attribute: msDS-cloudExtensionAttribute1
101100
- Default value: Leave blank
102101
- Target attribute: employeeHireDate
103102
- Apply this mapping: Always
104-
7. Select **Apply**.
105-
8. Back on the **Attribute mappings** screen, you should see your new attribute mapping.
106-
9. Select **Save schema**.
103+
:::image type="content" source="media/how-to-lifecycle-workflow-sync-attributes/edit-cloud-attribute-mapping.png" alt-text="Screenshot of the cloud attribute mapping.":::
104+
1. Select **Apply**.
105+
1. Back on the **Attribute mappings** screen, you should see your new attribute mapping.
106+
1. Select **Save schema**.
107107

108108
For more information on attributes, see [Attribute mapping in Microsoft Entra Connect cloud sync.](../hybrid/cloud-sync/how-to-attribute-mapping.md)
109109

110-
<a name='how-to-create-a-custom-sync-rule-in-azure-ad-connect-for-employeehiredate'></a>
111-
112110
## How to create a custom sync rule in Microsoft Entra Connect for EmployeeHireDate
113-
The following example will walk you through setting up a custom synchronization rule that synchronizes the Active Directory attribute to the employeeHireDate attribute in Microsoft Entra ID.
114-
111+
The following example walks you through setting up a custom synchronization rule that synchronizes the Active Directory attribute to the employeeHireDate attribute in Microsoft Entra ID.
115112
1. Open a PowerShell window as administrator and run `Set-ADSyncScheduler -SyncCycleEnabled $false` to disable the scheduler.
116-
2. Go to Start\Azure AD Connect\ and open the Synchronization Rules Editor
117-
3. Ensure the direction at the top is set to **Inbound**.
118-
4. Select **Add Rule.**
119-
5. On the **Create Inbound synchronization rule** screen, enter the following information and select **Next**.
113+
1. Go to Start\Azure AD Connect\ and open the Synchronization Rules Editor
114+
1. Ensure the direction at the top is set to **Inbound**.
115+
1. Select **Add Rule.**
116+
1. On the **Create Inbound synchronization rule** screen, enter the following information and select **Next**.
120117
- Name: In from AD - EmployeeHireDate
121118
- Connected System: contoso.com
122119
- Connected System Object Type: user
123120
- Metaverse Object Type: person
124121
- Precedence: 200
125122
![Screenshot of creating an inbound synchronization rule basics.](media/how-to-lifecycle-workflow-sync-attributes/create-inbound-rule.png)
126-
6. On the **Scoping filter** screen, select **Next.**
127-
7. On the **Join rules** screen, select **Next**.
128-
8. On the **Transformations** screen, Under **Add transformations,** enter the following information.
123+
1. On the **Scoping filter** screen, select **Next.**
124+
1. On the **Join rules** screen, select **Next**.
125+
1. On the **Transformations** screen, Under **Add transformations,** enter the following information.
129126
- FlowType: Direct
130127
- Target Attribute: employeeHireDate
131128
- Source: msDS-cloudExtensionAttribute1
132129
![Screenshot of creating inbound synchronization rule transformations.](media/how-to-lifecycle-workflow-sync-attributes/create-inbound-rule-transformations.png)
133-
9. Select **Add**.
134-
10. In the Synchronization Rules Editor, ensure the direction at the top is set to **Outbound**.
135-
11. Select **Add Rule.**
136-
12. On the **Create Outbound synchronization rule** screen, enter the following information and select **Next**.
130+
1. Select **Add**.
131+
1. In the Synchronization Rules Editor, ensure the direction at the top is set to **Outbound**.
132+
1. Select **Add Rule.**
133+
1. On the **Create Outbound synchronization rule** screen, enter the following information and select **Next**.
137134
- Name: Out to Microsoft Entra ID - EmployeeHireDate
138135
- Connected System: &lt;your tenant&gt;
139136
- Connected System Object Type: user
140137
- Metaverse Object Type: person
141138
- Precedence: 201
142-
13. On the **Scoping filter** screen, select **Next.**
143-
14. On the **Join rules** screen, select **Next**.
144-
15. On the **Transformations** screen, Under **Add transformations,** enter the following information.
139+
1. On the **Scoping filter** screen, select **Next.**
140+
1. On the **Join rules** screen, select **Next**.
141+
1. On the **Transformations** screen, Under **Add transformations,** enter the following information.
145142
- FlowType: Direct
146143
- Target Attribute: employeeHireDate
147144
- Source: employeeHireDate
148145
![Screenshot of create outbound synchronization rule transformations.](media/how-to-lifecycle-workflow-sync-attributes/create-outbound-rule-transformations.png)
149-
16. Select **Add**.
150-
17. Close the Synchronization Rules Editor
151-
18. Enable the scheduler again by running `Set-ADSyncScheduler -SyncCycleEnabled $true`.
146+
1. Select **Add**.
147+
1. Close the Synchronization Rules Editor
148+
1. Enable the scheduler again by running `Set-ADSyncScheduler -SyncCycleEnabled $true`.
152149

153150
> [!NOTE]
154151
>- **msDS-cloudExtensionAttribute1** is an example source.
@@ -157,6 +154,33 @@ The following example will walk you through setting up a custom synchronization
157154
158155
For more information, see [How to customize a synchronization rule](../hybrid/connect/how-to-connect-create-custom-sync-rule.md) and [Make a change to the default configuration.](../hybrid/connect/how-to-connect-sync-change-the-configuration.md)
159156

157+
## Edit attribute mapping in the provisioning application
158+
159+
Once you have set up your provisioning application, you're able to edit its attribute mapping. When the app is created, you get a list of default mappings between your HRM and Active Directory. From there you can either edit the existing mapping, or add new mapping.
160+
161+
To update this mapping, you'd do the following:
162+
163+
1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com) as at least a [Global Administrator](../roles/permissions-reference.md#global-administrator).
164+
165+
1. Browse to **Identity** > **Applications** > **Enterprise applications**.
166+
167+
1. Open your provisioned application.
168+
169+
1. Select Provisioning and then select **Edit attribute Mapping**.
170+
171+
1. Select **Show advanced options**, and then select edit Attribute list for On Premise Active Directory.
172+
:::image type="content" source="media/how-to-lifecycle-workflow-sync-attributes/edit-on-prem-attribute.png" alt-text="Screenshot of editing on-premises attribute.":::
173+
1. Add your source attribute(s) created as Type String, and select on the CheckBox for required.
174+
:::image type="content" source="media/how-to-lifecycle-workflow-sync-attributes/edit-attribute-list.png" alt-text="Screenshot of source api list.":::
175+
> [!NOTE]
176+
> The number, and name, of source attributes added will depend on which attributes you are syncing.
177+
1. Select Save.
178+
179+
1. From there you must map the HRM attributes to the added Active Directory attributes. To do this, Add New Mapping using an Expression.
180+
181+
1. Your expression must match the formatting found in the [Understanding EmployeeHireDate and EmployeeLeaveDateTime formatting](how-to-lifecycle-workflow-sync-attributes.md#understanding-employeehiredate-and-employeeleavedatetime-formatting) section.
182+
:::image type="content" source="media/how-to-lifecycle-workflow-sync-attributes/attribute-formatting-expression.png" alt-text="Screenshot of setting attribute format.":::
183+
1. Select ok.
160184

161185
<a name='how-to-verify-these-attribute-values-in-azure-ad'></a>
162186

@@ -182,4 +206,5 @@ Get-MgUser -UserId "44198096-38ea-440d-9497-bb6b06bcaf9b" | Select-Object Displa
182206
## Next steps
183207
- [What are lifecycle workflows?](what-are-lifecycle-workflows.md)
184208
- [Create a custom workflow using the Microsoft Entra admin center](tutorial-onboard-custom-workflow-portal.md)
209+
- [Configure API-driven inbound provisioning app (Public preview)](../app-provisioning/inbound-provisioning-api-configure-app.md)
185210
- [Create a Lifecycle workflow](create-lifecycle-workflow.md)
Loading
263 KB
Loading
Loading
233 KB
Loading

0 commit comments

Comments
 (0)