使用 LCW 擴充性工作流程擴充 Microsoft Entra 屬性映射並自訂呼叫的參考資料

當你設定配置時,可以指定的屬性映射類型之一是生命週期工作流程(LCW)擴充性工作流程映射類型。 此映射類型允許您將屬性映射擴展至表達式 映射類型所支援的基本轉換之外,讓您能滿足可能需要自訂商業邏輯的情境。

要設定 LCW 擴充性工作流程映射類型,您將利用 LCW 擴充性工作流程,該工作流程會呼叫 Azure Logic App 來產生一個值。 Azure Logic App 產生的值會套用到目標屬性上。

Prerequisites

要建立 Azure Logic 應用程式,請確保你具備:

要建立 LCW 擴充性工作流程以觸發 Azure Logic 應用程式,請確保你具備:

要設定配置工作,包括屬性映射,請確保你具備:

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 管理中心

  1. 使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。

  2. 導覽至 生命週期工作流程 > 自訂擴充功能 > 新增自訂擴充功能。

    Microsoft Entra 入口網站自訂擴充刀片的截圖,以及「新增自訂擴充功能」按鈕的位置。

  3. 在建立精靈的 基礎 標籤下,為你的自訂擴充功能新增名稱和描述。

  4. 在 任務行為 標籤下,選擇 「啟動等待結果(預覽)」。

  5. 在「詳細資料」標籤下,你可以將自訂擴充功能連結到 Azure Logic 應用程式。 假設你已經建立了一個,請選擇「建立邏輯應用程式的否」,然後輸入訂閱、資源群組,以及 Azure Logic 應用程式的詳細資料。

    自訂擴充功能建立精靈的詳細面板截圖,客戶連結 Azure Logic 應用程式。

  6. 在 「Review + create 」標籤中檢視自訂擴充功能細節,然後點擊 建立 完成。

你現在有一個自訂擴充功能,可以作為任務連結到可擴充性工作流程。 現在讓我們開始建立一個可擴充的工作流程。

使用 Microsoft Graph

  1. 啟動 Microsoft Graph Explorer 工具。
  2. 請登入您的租戶。
  3. 選取 [修改權限]。
  4. 同意以下所需許可: LifecycleWorkflows-CustomExt.ReadWrite.All
  5. 使用 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 管理中心

  1. 使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。

  2. 導航至 身份治理 > 生命週期工作流程 > 建立工作流程。

  3. 在「選擇範本」標籤中,選擇 「即時配置 擴充範本」。

    生命週期工作流程建立精靈中範本目錄的截圖,其中一個是擴充性工作流程的範本。

  4. 在 基礎 標籤中,輸入工作流程的名稱和描述。 觸發器類型會自動設定為 Provisioning 屬性映射,這是我們目前唯一支援擴充性工作流程的觸發類型。

  5. 現在讓我們設定你的擴充性工作流程,讓它觸發自訂擴充功能。 在 「檢視任務 」標籤中,點擊「 執行資料驅動自訂任務擴充 」任務,該任務應該會自動加入工作流程任務表,作為即時配置擴充性範本的一部分。

    生命週期工作流程建立精靈中「檢視任務」窗格的截圖,擴充性工作流程範本列出了「執行資料驅動自訂任務擴充」任務。

  6. 在 「執行資料驅動自訂任務擴充功能 」的情境窗格中,點選「 選擇自訂擴充功能 」欄位,並選擇你在前一節建立的自訂擴充功能。

  7. 點選 [儲存]。

  8. 在 「Review + 建立 」分頁檢視你的工作流程細節,然後點選 建立 完成。

你現在擁有一個可擴充的工作流程,可以觸發包含你自訂邏輯的 Azure 邏輯應用程式。 現在讓我們著手將擴充性工作流程映射到目標屬性。

使用 Microsoft Graph

  1. 啟動 Microsoft Graph Explorer 工具。
  2. 請登入您的租戶。
  3. 選取 [修改權限]。
  4. 同意以下所需許可: LifecycleWorkflows-Workflow.ReadWrite.All
  5. 使用 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 管理中心

  1. 使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。

  2. 瀏覽 企業應用程式 > 所有應用程式。

    Microsoft Entra 入口網站中企業應用程式刀片的截圖。

  3. 選擇特定的應用程式(例如像 SuccessFactors 或 Workday 這樣的人力資源連接器,或是 SaaS 應用程式)。

  4. 在應用程式中,導覽到 配置 > 屬性映射。

  5. 在屬性映射清單中,找到你想呼叫自訂邏輯的目標屬性。 選擇該屬性的編輯圖示(鉛筆符號)。

    「屬性映射」刀片的截圖,以及鉛筆圖示的位置,這是「編輯屬性映射」刀片的入口點。

  6. 在「編輯屬性映射」滑動中,選擇映射類型下拉選單中的 LCW 擴充性工作流程。

  7. 點擊 LCW 擴充性工作流程 欄位以開啟擴充性工作流程選擇器。

  8. 在選擇擴充 性工作流程 的上下文面板中,從列表中選擇適當的擴充性工作流程並按下 選擇。

  9. 在 輸入屬性 欄位,請指定你將傳遞給擴充性工作流程的來源系統屬性,以及該屬性的別名(別名對於來源屬性名稱過長或無法被人類閱讀,可能需要友善名稱的情況特別有用)。

  10. 在「編輯屬性映射」刀片底部選擇「編輯」按鈕。

如果擴充性工作流程成功映射到目標屬性,屬性 映射 頁面會更新,使該屬性的 映射類型 欄位顯示「LCW 擴展性工作流程」。

一旦你完成配置作業的設定,就可以照常開始設定作業了。 LCW 擴充性工作流程將適用於所有範圍內的物件。

使用 Microsoft Graph

  1. 使用瀏覽器,透過 Microsoft Entra 系統管理中心 登入你的 Entra ID 租戶。

  2. 瀏覽 企業應用程式 > 所有應用程式。

  3. 選擇你想修改屬性映射的應用程式。

  4. 進入 配置 > 屬性映射 ,選擇 進階選項 > 編輯結構。

    Important

    在您進行任何變更之前,我們建議您先保存一份現有結構的副本。 這讓你可以輕鬆還原到穩定/未修改的結構版本。

  5. 搜尋你想編輯的目標屬性,使其對應到 LCW 擴充性工作流程。 以下是你需要修改該屬性的欄位:

    田名稱 Description
    flowType 必須是 ObjectAddOnly,因為 LCW 擴充性工作流程 只能在創建事件中執行
    matchingPriority 必須是 0,因為映射到 LCW 擴充性工作流程的目標屬性 無法作為匹配屬性使用
    expression 這將是 LCW 擴充性工作流程的 GUID
    name 同理 expression;這將是 LCW 擴充性工作流程的 GUID
    type 必須是 LifecycleWorkflow
    parameters 在這裡,你會設定想要傳入 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": []
    				}
    			}
    		]
    	}
    }
    
  6. 儲存 整個 已編輯的結構物件,而不只儲存你編輯的部分(考慮另存檔案)。 你需要在 Microsoft Graph Explorer 工具的請求主體中提供整個結構物件。

  7. 啟動 Microsoft Graph Explorer 工具。

  8. 請登入您的租戶。

  9. 選取 [修改權限]。

  10. 同意以下所需許可: Synchronization.ReadWrite.All

  11. 將編輯好的結構物件複製貼上到 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 的數值。 若您決定這樣做,請謹慎行事。