當你設定配置時,可以指定的屬性映射類型之一是生命週期工作流程(LCW)擴充性工作流程映射類型。 此映射類型允許您將屬性映射擴展至表達式 映射類型所支援的基本轉換之外,讓您能滿足可能需要自訂商業邏輯的情境。
要設定 LCW 擴充性工作流程映射類型,您將利用 LCW 擴充性工作流程,該工作流程會呼叫 Azure Logic App 來產生一個值。 Azure Logic App 產生的值會套用到目標屬性上。
Prerequisites
要建立 Azure Logic 應用程式,請確保你具備:
- Azure 訂閱(建立及使用 Azure 邏輯應用程式必須)
- 至少要有 Logic App 貢獻 者的角色
要建立 LCW 擴充性工作流程以觸發 Azure Logic 應用程式,請確保你具備:
- Entra ID治理授權
- 至少要有 生命週期工作流程管理員 的角色
要設定配置工作,包括屬性映射,請確保你具備:
LCW 擴充性工作流程概述
LCW 可擴充性工作流程是一種新型態的 生命週期工作流程 ,與現有的 Joiner、Mover 和 Leaver 類型不同。
就像 Joiner、Mover 和 Leaver 的工作流程一樣,你會指定一個任務讓工作流程執行。 在這種情況下,任務會是觸發 自訂擴充功能。 你可以把自訂擴充包想像成 Azure Logic App 的包裝器,裡面裝著你的自訂邏輯——當擴充性工作流程觸發自訂擴充功能時,Azure Logic App 就會執行。
然而,與 Joiner、Mover 和 Leaver 工作流程不同,擴充性工作流程可以在使用者尚未配置前就已執行。 換句話說,擴充性工作流程可以獨立於 Entra ID 目錄中是否存在特定使用者帳號而運行。
這使得可擴充性工作流程在預配置(亦稱為預加入者)情境中非常有用。 例如,你可以使用擴充性工作流程,為新進員工產生獨特的別名,然後再將他們的帳號配置到目錄,並隨後授權他們使用公司資源。
Note
目前,LCW 擴充性工作流程僅支援一種觸發類型(配置屬性映射)和一個任務(執行資料驅動自訂任務擴充)。
步驟 0:建立 Azure Logic 應用程式
你需要建立一個基於消費的 Azure 邏輯應用程式,輸出一個單一值,並套用到目標屬性上。
如果您是 Azure Logic Apps 的新手,可以在這裡閱讀更多內容。 此外,你也可以在這個教學中找到如何建立第一個基於消費的 Azure 邏輯應用程式的說明。
步驟 1:建立自訂擴充功能
在建立擴充性工作流程之前,你需要一個自訂擴充功能,並連結到你的擴充性工作流程。 如前所述,你可以把自訂擴充包想像成 Azure Logic App 的包裝器,你的自訂邏輯就在那裡。 當擴充性工作流程觸發自訂擴充功能時,Azure Logic App 會執行。
在 Microsoft Entra 管理中心
使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。
導覽至 生命週期工作流程 > 自訂擴充功能 > 新增自訂擴充功能。
在建立精靈的 基礎 標籤下,為你的自訂擴充功能新增名稱和描述。
在 任務行為 標籤下,選擇 「啟動等待結果(預覽)」。
在「詳細資料」標籤下,你可以將自訂擴充功能連結到 Azure Logic 應用程式。 假設你已經建立了一個,請選擇「建立邏輯應用程式的否」,然後輸入訂閱、資源群組,以及 Azure Logic 應用程式的詳細資料。
在 「Review + create 」標籤中檢視自訂擴充功能細節,然後點擊 建立 完成。
你現在有一個自訂擴充功能,可以作為任務連結到可擴充性工作流程。 現在讓我們開始建立一個可擴充的工作流程。
使用 Microsoft Graph
- 啟動 Microsoft Graph Explorer 工具。
- 請登入您的租戶。
- 選取 [修改權限]。
- 同意以下所需許可:
LifecycleWorkflows-CustomExt.ReadWrite.All - 使用 Create customTaskExtensions API 來建立自訂擴充功能。
範例要求
POST /identityGovernance/lifecycleWorkflows/customTaskExtensions
Content-Type: application/json
{
"displayName": "test1",
"description": "test1",
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.logicAppTriggerEndpointConfiguration",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "lcw-synthetics",
"logicAppWorkflowName": "testReply"
},
"callbackConfiguration": null,
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdPopTokenAuthentication"
},
"id": "",
"clientConfiguration": {
"timeoutInMilliseconds": 1000,
"maximumRetries": 1
},
"replyMode": "response"
}
範例回應
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/lifecycleWorkflows/customTaskExtensions/$entity",
"id": "902ca666-6b67-4d45-839c-8836d7f205f9",
"displayName": "test1",
"description": "test1",
"createdDateTime": "2026-04-20T19:56:27.0723563Z",
"lastModifiedDateTime": "2026-04-20T19:56:27.0723657Z",
"replyMode": "response",
"callbackConfiguration": null,
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.logicAppTriggerEndpointConfiguration",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "lcw-synthetics",
"logicAppWorkflowName": "testReply",
"url": "https://prod-05.southcentralus.logic.azure.com:443/workflows/c070dc95455e4e5a98da954feeb7e756/triggers/manual/paths/invoke?api-version=2016-10-01"
},
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdPopTokenAuthentication"
},
"clientConfiguration": {
"maximumRetries": 1,
"timeoutInMilliseconds": 1000
}
}
你現在有一個自訂擴充功能,可以作為任務連結到可擴充性工作流程。 現在讓我們開始建立一個可擴充的工作流程。
步驟二:建立可擴充性工作流程
建立自訂擴充功能後,你就可以建立一個擴充性工作流程,任務是觸發自訂擴充功能。
在 Microsoft Entra 管理中心
使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。
導航至 身份治理 > 生命週期工作流程 > 建立工作流程。
在「選擇範本」標籤中,選擇 「即時配置 擴充範本」。
在 基礎 標籤中,輸入工作流程的名稱和描述。 觸發器類型會自動設定為 Provisioning 屬性映射,這是我們目前唯一支援擴充性工作流程的觸發類型。
現在讓我們設定你的擴充性工作流程,讓它觸發自訂擴充功能。 在 「檢視任務 」標籤中,點擊「 執行資料驅動自訂任務擴充 」任務,該任務應該會自動加入工作流程任務表,作為即時配置擴充性範本的一部分。
在 「執行資料驅動自訂任務擴充功能 」的情境窗格中,點選「 選擇自訂擴充功能 」欄位,並選擇你在前一節建立的自訂擴充功能。
點選 [儲存]。
在 「Review + 建立 」分頁檢視你的工作流程細節,然後點選 建立 完成。
你現在擁有一個可擴充的工作流程,可以觸發包含你自訂邏輯的 Azure 邏輯應用程式。 現在讓我們著手將擴充性工作流程映射到目標屬性。
使用 Microsoft Graph
- 啟動 Microsoft Graph Explorer 工具。
- 請登入您的租戶。
- 選取 [修改權限]。
- 同意以下所需許可:
LifecycleWorkflows-Workflow.ReadWrite.All - 使用 Create 工作流程 API 來建立 LCW 擴充性工作流程。
範例要求
POST /identityGovernance/lifecycleWorkflows/workflows
Content-Type: application/json
{
"category": "extensibility",
"displayName": "Real-time Provisioning extensibility (Preview)",
"description": "Execute real-time extensibility tasks for performing attribute mapping extensions",
"tasks": [
{
"arguments": [
{
"name": "customTaskExtensionID",
"value": "f740553f-a6a2-4dc8-82df-148336dcd920"
}
],
"description": "Run a Custom Task Extension and pass data from the workflow as input",
"displayName": "Run a Data driven Custom Task Extension (Preview)",
"isEnabled": true,
"id": "77bb973f-3150-4a0f-b49b-24d1baa677f6",
"continueOnError": false,
"taskDefinitionId": "09303719-609e-4348-8bbc-d3ee45a2657e",
"category": "extensibility"
}
],
"executionConditions": {
"@odata.type": "#microsoft.graph.identityGovernance.provisioningAttributeMapping"
},
"isEnabled": true,
"isSchedulingEnabled": false,
"targetSubjectType": "provisioningObject"
}
範例回應
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/lifecycleWorkflows/workflows/$entity",
"category": "extensibility",
"description": "Execute real-time extensibility tasks for performing attribute mapping extensions",
"displayName": "Real-time Provisioning extensibility (Preview)",
"isEnabled": true,
"isSchedulingEnabled": false,
"lastModifiedDateTime": "2026-04-20T19:58:42.4447369Z",
"targetSubjectType": "provisioningObject",
"createdDateTime": "2026-04-20T19:58:42.444727Z",
"deletedDateTime": null,
"id": "e41388b5-446e-4cf1-9bce-92cd09f828e5",
"nextScheduleRunDateTime": null,
"version": 1,
"executionConditions": {
"@odata.type": "#microsoft.graph.identityGovernance.provisioningAttributeMapping"
},
"quarantineDetails": {
"quarantinedDateTime": null,
"quarantineType": "notQuarantined",
"quarantineReason": null
},
"settings": {
"quarantineConfiguration": {
"matchMode": "any",
"conditions": []
}
}
}
你現在擁有一個可擴充的工作流程,可以觸發包含你自訂邏輯的 Azure 邏輯應用程式。 現在讓我們著手將擴充性工作流程映射到目標屬性。
步驟 3:將可擴充性工作流程映射到目標屬性
現在你已經建立了擴充性工作流程,接下來是將它映射到配置工作中的屬性的時候了。 這樣當配置工作進行中時,擴充性工作流程會為該配置工作範圍內的每個物件產生該屬性的值。
例如,如果你將一個擴充性工作流程映射到 userPrincipalName 目標屬性,且你的配置工作範圍內有五個使用者,工作流程會為這五個使用者產生 userPrincipalName 屬性的值。
在 Microsoft Entra 管理中心
使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。
瀏覽 企業應用程式 > 所有應用程式。
選擇特定的應用程式(例如像 SuccessFactors 或 Workday 這樣的人力資源連接器,或是 SaaS 應用程式)。
在應用程式中,導覽到 配置 > 屬性映射。
在屬性映射清單中,找到你想呼叫自訂邏輯的目標屬性。 選擇該屬性的編輯圖示(鉛筆符號)。
在「編輯屬性映射」滑動中,選擇映射類型下拉選單中的 LCW 擴充性工作流程。
點擊 LCW 擴充性工作流程 欄位以開啟擴充性工作流程選擇器。
在選擇擴充 性工作流程 的上下文面板中,從列表中選擇適當的擴充性工作流程並按下 選擇。
在 輸入屬性 欄位,請指定你將傳遞給擴充性工作流程的來源系統屬性,以及該屬性的別名(別名對於來源屬性名稱過長或無法被人類閱讀,可能需要友善名稱的情況特別有用)。
在「編輯屬性映射」刀片底部選擇「編輯」按鈕。
如果擴充性工作流程成功映射到目標屬性,屬性 映射 頁面會更新,使該屬性的 映射類型 欄位顯示「LCW 擴展性工作流程」。
一旦你完成配置作業的設定,就可以照常開始設定作業了。 LCW 擴充性工作流程將適用於所有範圍內的物件。
使用 Microsoft Graph
使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。
瀏覽 企業應用程式 > 所有應用程式。
選擇你想修改屬性映射的應用程式。
進入 配置 > 屬性映射 ,選擇 進階選項 > 編輯結構。
Important
在您進行任何變更之前,我們建議您先保存一份現有結構的副本。 這讓你可以輕鬆還原到穩定/未修改的結構版本。
搜尋你想編輯的目標屬性,使其對應到 LCW 擴充性工作流程。 以下是你需要修改該屬性的欄位:
田名稱 Description flowType必須是 ObjectAddOnly,因為 LCW 擴充性工作流程 只能在創建事件中執行matchingPriority必須是 0,因為映射到 LCW 擴充性工作流程的目標屬性 無法作為匹配屬性使用expression這將是 LCW 擴充性工作流程的 GUID name同理 expression;這將是 LCW 擴充性工作流程的 GUIDtype必須是 LifecycleWorkflowparameters在這裡,你會設定想要傳入 Azure Logic App 的原始屬性作為輸入。 key是給定輸入的別名(這讓開發者能使用友善名稱並參考 Azure Logic App 中的輸入,對於來源屬性可能冗長或複雜的情況非常有幫助)。expression且name將成為來源屬性。採用 LCW 擴充性工作流程的新屬性映射範例
在下面的範例中,我們正在更新
userPrincipalName目標屬性。{ "defaultValue": null, "exportMissingReferences": false, "flowBehavior": "FlowWhenChanged", "flowType": "ObjectAddOnly", "matchingPriority": 0, "targetAttributeName": "userPrincipalName", "source": { "expression": "2b19441a-9ff0-449d-ba74-3e4226eff132", "name": "2b19441a-9ff0-449d-ba74-3e4226eff132", "type": "LifecycleWorkflow", "parameters": [ { "key": "firstname", "value": { "expression": "[name.givenName]", "name": "name.givenName", "type": "Attribute", "parameters": [] } }, { "key": "lastname", "value": { "expression": "[name.familyName]", "name": "name.familyName", "type": "Attribute", "parameters": [] } } ] } }儲存 整個 已編輯的結構物件,而不只儲存你編輯的部分(考慮另存檔案)。 你需要在 Microsoft Graph Explorer 工具的請求主體中提供整個結構物件。
請登入您的租戶。
選取 [修改權限]。
同意以下所需許可:
Synchronization.ReadWrite.All將編輯好的結構物件複製貼上到 Microsoft Graph Explorer 工具的請求主體區塊,並使用 Update synchronizationSchema API 更新該配置工作的屬性映射。
範例要求
PUT /servicePrincipals/{id}/synchronization/jobs/{jobId}/schema
Content-Type: application/json
// In your request body, paste the entire schema object
範例回應
HTTP/1.1 204 No Content
一旦你完成配置作業的設定,就可以照常開始設定作業了。 LCW 擴充性工作流程將適用於所有範圍內的物件。
Limitations
請注意以下功能限制:
- 雲端同步不支援自訂呼叫。LCW 擴充性工作流程僅可用於人力資源進站、API 驅動配置、SaaS 出站配置及跨租戶同步流程。
- 具有 LCW 可擴充性工作流程映射類型的屬性無法用於匹配。 若屬性值是透過 LCW 擴充性工作流程產生,則無法作為匹配屬性使用。
- 自訂呼叫僅支援於創建事件。 LCW 擴充性工作流程映射只能在建立時套用,無法在更新或刪除時套用。
- 自訂安全屬性(CSA)。 我們並不明確支持使用 LCW 擴充性工作流程來產生 CSA 的數值。 若您決定這樣做,請謹慎行事。