共用方式為


使用 Azure Logic Apps 進行 API 驅動的輸入布建

本教學課程說明如何使用 Azure Logic Apps 工作流程來實作 Microsoft Entra ID API 導向的輸入布建。 使用本教學課程中的步驟,您可以將包含 HR 數據的 CSV 檔案轉換成大量要求承載,並將其傳送至 Microsoft Entra 布 建 /bulkUpload API 端點。 本文也提供如何搭配任何記錄系統使用相同整合模式的指引。

整合案例

商務需求

記錄系統會定期產生包含背景工作數據的 CSV 檔案匯出。 您想要實作整合,從 CSV 檔案讀取數據,並在目標目錄中自動布建用戶帳戶(內部部署的 Active Directory 混合式使用者和僅限雲端使用者的 Microsoft Entra ID)。

實作需求

從實作的觀點來看:

  • 您想要使用 Azure Logic Apps 工作流程,從 Azure 檔案共用中可用的 CSV 檔案導出讀取數據,並將其傳送至輸入布建 API 端點。
  • 在 Azure Logic Apps 工作流程中,您不想實作在記錄和目標目錄系統之間比較身分識別數據的複雜邏輯。
  • 您想要使用 Microsoft Entra 布建服務來套用 IT 受控布建規則,以在目標目錄中自動建立/更新/啟用/停用帳戶(內部部署的 Active Directory 或 Microsoft Entra ID)。

Graphic of Azure Logic Apps-based integration.

整合案例變化

雖然本教學課程使用 CSV 檔案作為記錄系統,但您可以自定義範例 Azure Logic Apps 工作流程,以從任何記錄系統讀取數據。 Azure Logic Apps 提供各種不同的內建連接器和受控連接器,以及可在整合工作流程中使用的預先建置觸發程式和動作。

以下是企業整合案例變化的清單,其中 API 驅動的輸入布建可以使用 Logic Apps 工作流程來實作。

# 記錄系統 使用 Logic Apps 讀取源數據的整合指引
1 儲存在 SFTP 伺服器上的檔案 使用內建 SFTP 連接器受控 SFTP SSH 連接器,從儲存在 SFTP 伺服器上的檔案讀取數據。
2 資料庫數據表 如果您使用 Azure SQL Server 或內部部署 SQL Server,請使用 SQL Server 連接器來讀取資料表數據。
如果您使用 Oracle 資料庫,請使用 Oracle 資料庫 連接器來讀取資料表數據。
3 內部部署和雲端裝載的 SAP S/4 HANA 或
傳統內部部署 SAP 系統,例如 R/3 和 ECC
使用 SAP 連接器從 SAP 系統擷取身分識別數據。 如需如何設定此連接器的範例,請參閱 使用 Azure Logic Apps 和 SAP 連接器的常見 SAP 整合案例
4 IBM MQ 使用IBM MQ 連接器從佇列接收布建訊息。
5 Dynamics 365 Human Resources 使用 Dataverse 連接器從 Microsoft Dynamics 365 人力資源所使用的 Dataverse 數據表讀取數據
6 公開 REST API 的任何系統 如果您在 Logic Apps 連接器連結庫中找不到記錄系統的連接器,您可以建立自己的 自訂連接器 ,從記錄系統讀取數據。

讀取源數據之後,套用前置處理規則,並將記錄系統的輸出轉換成大量要求,以傳送至 Microsoft Entra 布建 bulkUpload API 端點。

重要

如果您想要與社群共用 API 驅動的輸入布建 + Logic Apps 整合工作流程,請建立 邏輯應用程式範本、記載如何使用它的步驟,以及提交提取要求以包含在 GitHub 存放庫中 entra-id-inbound-provisioning

如何使用本教學課程

在 Microsoft Entra 輸入布建 GitHub 存放庫中發佈的 Logic Apps 部署範本會自動化數項工作。 它也具有處理大型 CSV 檔案並將大量要求區塊化以在每個要求中傳送 50 筆記錄的邏輯。 以下說明如何測試它,並根據您的整合需求加以自定義。

注意

Azure Logic Apps 工作流程範例會以「依目前方式」提供,以供實作參考使用。 如果您有與其相關的問題,或想要加以增強,請使用 GitHub 專案存放庫

# 自動化工作 實作指引 進階自訂
1 從 CSV 檔案讀取背景工作數據。 Logic Apps 工作流程會使用 Azure 函式來讀取儲存在 Azure 檔案共用中的 CSV 檔案。 Azure 函式會將 CSV 資料轉換成 JSON 格式。 如果您的 CSV 檔格式不同,請更新工作流程步驟「剖析 JSON」和「建構 SCIMUser」。 如果您的記錄系統不同,請參閱整合案例變化一節中提供的指引,說明如何使用適當的連接器來自定義Logic Apps工作流程。
2 預先處理數據並將數據轉換成 SCIM 格式。 根據預設,Logic Apps 工作流程會將 CSV 檔案中的每個記錄轉換成 SCIM 核心使用者 + 企業使用者表示法。 如果您打算使用自定義 SCIM 架構延伸模組,請更新步驟「建構 SCIMUser」以包含您的自定義 SCIM 架構延伸模組。 如果您想要執行 C# 程式代碼進行進階格式設定和資料驗證,請使用 自訂 Azure Functions
3 使用正確的驗證方法 您可以使用 服務主體 或使用 受控識別 來存取輸入布建 API。 使用正確的驗證方法更新「將 SCIMBulkPayload 傳送至 API 端點」步驟。 -
4 在 內部部署的 Active Directory 或 Microsoft Entra 識別符中布建帳戶。 設定 API 驅動的輸入布建應用程式。 這會產生唯 一的 /bulkUpload API 端點。 更新「將 SCIMBulkPayload 傳送至 API 端點」步驟,以使用正確的 bulkUpload API 端點。 如果您打算搭配自定義 SCIM 架構使用大量要求,請擴充布建應用程式架構以包含您的自定義 SCIM 架構屬性。
5 掃描布建記錄,然後重試布建失敗的記錄。 此自動化尚未在範例 Logic Apps 工作流程中實作。 若要實作,請參閱布 建記錄圖形 API -
6 將Logic Apps型自動化部署到生產環境。 驗證 API 驅動佈建流程並自訂 Logic Apps 工作流程以符合您的需求之後,請在您的環境中部署自動化。 -

步驟 1:建立 Azure 儲存體 帳戶來裝載 CSV 檔案

本節所述的步驟是選擇性的。 如果您已經有現有的記憶體帳戶,或想要從 SharePoint 網站或 Blob 記憶體等其他來源讀取 CSV 檔案,請更新邏輯應用程式以使用您選擇的連接器。

  1. 至少以 Application 管理員 istrator 身分登入 Azure 入口網站
  2. 搜尋「儲存體 帳戶」,並建立新的儲存體帳戶。 Screenshot of creating new storage account.
  3. 指派資源群組,併為其命名。 Screenshot of resource group assignment.
  4. 建立記憶體帳戶之後,請移至資源。
  5. 按兩下 [檔案分享] 選單選項,然後建立新的檔案共用。 Screenshot of creating new file share.
  6. 確認檔案共用建立成功。 Screenshot of file share created.
  7. 使用上傳選項將範例 CSV 檔案上傳至檔案共用。
  8. 以下是 CSV 檔案中資料行的螢幕快照。 Screenshot of columns in Excel.

步驟 2:設定 Azure 函式CSV2JSON轉換器

  1. 在與 Azure 入口網站 相關聯的瀏覽器中,開啟 GitHub 存放庫 URL - https://github.com/joelbyford/CSVtoJSONcore

  2. 單擊 [部署至 Azure] 連結,將此 Azure 函式部署至您的 Azure 租使用者。 Screenshot of deploying Azure Function.

  3. 指定要在其中部署此 Azure 函式的資源群組。 Screenshot of configuring Azure Function resource group.

    如果您收到「此區域有 0 個實例的配額」錯誤,請嘗試選取不同的區域。

  4. 確定 Azure 函式作為 App Service 的部署成功。

  5. 移至資源群組,然後開啟 WebApp 組態。 請確定它處於「執行中」狀態。 複製與 Web 應用程式相關聯的預設功能變數名稱。 Screenshot of Azure Function Web App domain name.

  6. 開啟 Postman 用戶端,以測試 CSVtoJSON 端點是否如預期般運作。 貼上從上一個步驟複製的功能變數名稱。 使用 「text/csv」 的內容類型,並在要求本文中張貼範例 CSV 檔案至端點: https://[your-domain-name]/csvtojsonScreenshot of Postman client calling the Azure Function.

  7. 如果 Azure 函式部署成功,則您會在回應中取得 CSV 檔案的 JSON 版本,狀態為 200 OK。

    Screenshot of Azure Function response.

  8. 若要允許 Logic Apps 叫用此 Azure 函式,請在 WebApp 的 CORS 設定中輸入星號 。 Screenshot of Azure Function CORS setting.

步驟 3:設定 API 驅動的輸入使用者布建

步驟 4:設定 Azure Logic Apps 工作流程

  1. 按兩下下方的按鈕,部署 CSV2SCIMBulkUpload Logic Apps 工作流程的 Azure Resource Manager 範本。

    Deploy to Azure

  2. 在實例詳細數據下,更新醒目提示的專案、複製貼上先前步驟的值。 Screenshot of Azure Logic Apps instance details.

  3. Azurefile_access Key針對 參數,開啟您的 Azure 檔案記憶體帳戶,並複製「安全性和網路」底下存在的存取密鑰。
    Screenshot of Azure File access keys.

  4. 按兩下 [檢閱並建立] 選項以開始部署。

  5. 部署完成後,您會看到下列訊息。 Screenshot of Azure Logic Apps deployment complete.

步驟 5:設定系統指派的受控識別

  1. 請流覽 Logic Apps 工作流程的 [設定 -> 身分識別] 刀鋒視窗。
  2. 啟用 系統指派的受控識別Screenshot of enabling managed identity.
  3. 您會看到確認使用受控識別的提示。 按兩下 [ ]。
  4. 授與受控識別 許可權,以執行大量上傳

步驟 6:檢閱和調整工作流程步驟

  1. 在設計工具檢視中開啟邏輯應用程式。 Screenshot of Azure Logic Apps designer view.

  2. 檢閱工作流程中每個步驟的設定,以確定其正確無誤。

  3. 開啟 [使用路徑取得檔案內容] 步驟,並更正它以流覽至租使用者中的 Azure 檔案 儲存體。 Screenshot of get file content.

  4. 視需要更新連線。

  5. 請確定您的「將 CSV 轉換為 JSON」步驟指向正確的 Azure 函式 Web 應用程式實例。 Screenshot of Azure Function call invocation to convert from CSV to JSON.

  6. 如果您的 CSV 檔案內容 /標頭不同,請使用您可以從 API 呼叫 Azure 函式擷取的 JSON 輸出來更新 “Parse JSON” 步驟。 使用步驟 2 的 Postman 輸出。 Screenshot of Parse JSON step.

  7. 在「建構 SCIMUser」步驟中,確定 CSV 欄位會正確對應至將用於處理的 SCIM 屬性。

    Screenshot of Construct SCIM user step.

  8. 在「將 SCIMBulkPayload 傳送至 API 端點」步驟中,請確定您使用的是正確的 API 端點和驗證機制。

    Screenshot of invoking bulk upload API with managed identity.

步驟 7:執行觸發程式並測試 Logic Apps 工作流程

  1. 在 Logic Apps 設計工具的 [正式推出] 版本中,按兩下 [執行觸發程式] 以手動執行工作流程。 Screenshot of running the Logic App.
  2. 執行完成之後,請檢閱Logic Apps在每個反覆專案中執行的動作。
  3. 在最後一個反覆專案中,您應該會看到Logic Apps 將資料上傳至輸入布建 API 端點。 尋找 202 Accept 狀態代碼。 您可以複製貼上並驗證大量上傳要求。 Screenshot of the Logic Apps execution result.

下一步