共用方式為


REST API 範例的 Web 服務連接器工作流程指南

本文涵蓋範例 REST API 的部署,以逐步解說使用 REST API Web 數據源的 Web 服務組態工具。

先決條件

使用範例需要下列必要條件:

  • 已安裝 Web 服務組態工具。
  • 已部署 REST 數據源範例服務。 從 下載並安裝範例(請參閱這裡)。

備註

JSON 數據必須是單一物件,且該物件需有一個屬性,該屬性包含一個陣列。

{

"EmployeeList":[

{"id":"1","employee_name":"Albano","employee_salary":"22213","employee_age":"37","profile_image":""},{"id":"2","employee_name":"Albano","employee_salary":"22213","employee_age":"37","profile_image":""}

]

}

在 Web 服務組態工具中設定 REST 專案探索

下列步驟說明如何在 Web 服務組態工具中為您的數據源建立新專案。

  1. 開啟 Web 服務組態工具。 它會開啟空白SOAP專案。

    Web 服務組態工具

  2. 選取 檔案>新增>REST 專案

    建立新的 REST 專案

  3. 在左側,選取 [REST 專案],然後選取 [新增]。

    選取 REST 專案

  4. 在下一個頁面上,提供下列資訊:

    • 新的 Web 服務名稱
    • 位址 (REST API URL 路徑)
    • Namespace
    • 安全性模式 (驗證類型)

    REST 服務

    下列畫面顯示這些值的範例:

    REST 服務 的範例值

    將 [安全性模式] 設定為 [無]。 將 位址 設定為 Azure 中裝載的 JSON 伺服器範例。

  5. 請選擇 [確定]。 Web 服務組態工具中列出的 REST 專案。

    Web 服務組態工具中的 REST 專案

  6. 下一個步驟是定義 REST API 呼叫,並將呼叫轉譯為 Windows Communication Foundation (WCF) 呼叫。

    1. 展開 [REST 專案],然後選取 RESTSAMPLE 服務。

    2. 選取 ,然後新增。 系統會提示您新增兩個值:

      輸入 REST 服務的值

      1. 輸入名稱。 此步驟在螢幕快照中標示為 3。
      2. 輸入 位址。 此步驟在螢幕快照中標示為 4。
      3. 請選擇 [確定]。 REST 資源會新增至 RESTSAMPLE 服務的描述。
  7. 在 [資源] 方塊中,選取您剛才新增的 REST 資源。 新增下列方法:

    將 REST 方法新增至資源

  8. 選取 REST 方法。 請注意,您可以在相同的資源中建立多個方法,並定義在執行期間傳遞的查詢。

  9. 針對 GETALL 方法,不需要查詢。 將參數值保留空白。 匯出或匯入 REST API 時,您必須根據函式定義範例要求 /或回應。 前往此範例時,複製並貼上 JSON 返回值。

    Web 服務組態工具中 REST 方法頁面的螢幕快照。

  10. 選擇 儲存。 將項目儲存至 C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions

備註

儲存項目之後,會產生 WsConfig 檔案。 組態檔包含 Web 服務概觀稍早定義的多個檔案。

在 Web 服務組態工具中設定物件類型

下列步驟說明如何在 Web 服務組態工具中設定數據源的物件類型。

  1. 下一個步驟是定義連接器空間架構。 這是藉由建立物件類型並定義其物件類型來達成此目的。 按一下左窗格中 [物件類型],然後按下 [新增] 按鈕。 執行此動作會開啟下方的畫面。 新增物件類型並提供名稱。 點擊 [確定] 按鈕。

    顯示建立物件類型的對話框的螢幕快照。

  2. 新增物件類型後會顯示以下畫面。

    顯示已新增物件類型的螢幕快照。

  3. 對應至物件類型的右窗格可讓您管理所選物件類型的屬性及其特性。 按兩下 [新增] 按鈕提供以下畫面,其中可以新增屬性。

    螢幕快照,其中顯示將屬性新增至物件類型的頁面。

    顯示 [名稱] 和 [類型] 屬性欄位的螢幕快照。

  4. 在新增所有必要的屬性之後,會出現下方畫面。

    顯示物件類型已完成屬性的螢幕快照。

  5. 物件類型和屬性一旦建立之後,會提供空白工作流程,以符合Microsoft Identity Manager (MIM) 中執行的作業。

在 Web 服務組態工具中設定工作流程

下一個步驟是設定物件類型的工作流程。 工作流程檔案是 Web 服務連接器在運行時間使用的一系列活動。 工作流程可用來實作適當的 MIM 作業。 Web 服務組態工具可協助您建立四個不同的工作流程:

  • 匯入:從數據源匯入下列兩種類型的工作流程數據:

    • 完整匯入:可以設定的完整匯入。
    • 差異匯入:網路服務設定工具不支援。
  • 匯出:將數據從 MIM 匯出至連接的數據源。 支援這項操作的三個動作如下。 您可以根據您的需求來設定這些動作。

    • 新增
    • 刪除
    • 取代
  • 密碼:執行用戶的密碼管理(物件類型)。 此作業有兩個動作可供使用:

    • 設定密碼
    • 變更密碼
  • 測試連線:設定工作流程,以檢查是否已成功建立與數據源伺服器的連線。

備註

您可以設定項目的這些工作流程,或從Microsoft下載中心下載默認專案。

工作流程設計工具

工作流程設計工具會開啟工作區域,以根據需求設定工作流程。 針對每個物件類型 (新的 /existing),組態工具會提供工具所支援的工作流程節點。

工作流程設計工具

工作流程設計工具是由下列 UI 元素所組成:

  • 左窗格中的節點:這些可協助您選取要設計哪一個工作流程。

  • 中央工作流程設計工具:您可以在這裡卸除設定工作流程的活動。 若要完成各種 MIM 作業(匯出、匯入、密碼管理),您可以使用 .NET Workflow Framework 4 的標準和自定義工作流程活動。 Web 服務組態工具會使用標準和自定義工作流程活動。 如需標準活動的詳細資訊,請參閱使用活動設計工具

    • 在中央工作流程設計工具中,任何活動旁邊如果有加上驚嘆號的紅色圓圈,表示操作已中斷且未被完全正確地定義。 將滑鼠停留在紅色圓圈上,以找出確切的錯誤。 正確定義活動之後,紅色圓圈會變更為黃色資訊標記。

    • 在中央工作流程設計工具中,任何活動旁的黃色三角形資訊標記表示已定義活動,但您可以執行更多動作來完成活動。 將滑鼠停留在黃色三角形上方,以查看詳細資訊。

  • 工具箱:封裝所有工具,包括系統和自定義活動和預先定義的語句,以設計工作流程。 如需詳細資訊,請參閱 工具箱

  • [工具箱] 區段:[工具箱] 具有下列區段和類別:

    • 描述:工具箱的標頭。 一個索引標籤會存取 [工具箱] 和所選擇的工作流程活動的屬性。

    • 匯入工作流程:設定匯入工作流程的自定義活動。

    • 匯出工作流程:設定匯出工作流程的自定義活動。

    • 一般:用於設定任何工作流程的自訂活動。

    • 偵錯:在工作流程 4 中定義的系統偵錯工作流程活動。 這些活動可用於追蹤工作流程中的問題。

    • 陳述:在工作流程 4 中定義的系統工作流程活動。 如需詳細資訊,請參閱 使用活動設計工具

  • [屬性]:[屬性] 標籤會顯示在設計工具區域中放置並選取的特定工作流程活動的屬性。 左邊的圖形顯示了 指派 活動的屬性。 針對每個活動,屬性會有所不同,並在設定自定義工作流程時使用。 此索引標籤可讓您定義已放入中央工作流程設計工具之所選工具的屬性。 如需詳細資訊,請參閱 屬性

  • 任務列: 任務列包含三個元素:變數自變數匯入。 這些專案會與工作流程活動搭配使用。 如需詳細資訊,請參閱 .NET 4中的 Windows Workflow Foundation (WF) 開發人員簡介。

在 Web 服務組態工具中設定完整的匯入工作流程

下列步驟示範如何使用 Web 服務組態工具設定 REST API 的完整匯入工作流程。

警告

此範例只會建立工作流程。 可能需要修改工作流程,例如在 API 中使用自訂邏輯。

  1. 選取要設定的 [完整匯入] 工作流程。 自變數匯入 已經定義,而且是活動專屬的。 如需詳細資訊,請參閱下列畫面。

    完整匯入工作流程自變數

    匯入的命名空間

    重新配置呼叫之後,您需要變更那些屬性名稱,或為參考 API 傳回結構的變數和仍使用舊命名空間的物件類型新增命名空間。 右窗格中的工具箱會保存設定所需的所有自定義工作流程特定活動。 將值指派給您要用於邏輯的變數。 移至中央工作流程設計工具的底部區段,並宣告變數。 變數會在下一個步驟中宣告。

  2. 新增序列活動。 將 序列 活動設計工具從 工具箱 中拖曳,放入 Windows 工作流程設計工具視窗。 請參閱下列畫面。 序列 活動包含依序執行的子活動的有序集合。

    序列活動

  3. 若要新增變數,請找出 [建立變數]。 輸入 wsResponseName,選擇 變數類型 下拉式選單,然後選擇 瀏覽類型。 隨即顯示對話框。 選擇 自動生成的>GETALL>回應。 將 範圍預設 值保持未選取。 或者,使用 Properties 檢視來設定這些值。

    預設回應

  4. 從已添加的時序活動中,在 工具箱 裡再拖曳一個 時序 活動設計器。

  5. WebServiceCallActivity 拖曳到 [Common] 底下。 此活動可用來叫用探索之後可用的 Web 服務作業。 這是自定義活動,在不同的作業案例中很常見。

    服務名稱作業

    若要使用 Web 服務作業,請設定下列屬性:

    • 服務名稱:輸入 Web 服務的名稱。

    • 端點名稱:指定所選服務的端點名稱。

    • 作業名稱:指定服務的個別作業。

    • 參數:選取 參數。 在下一個對話框中,指派自變數值,如下圖所示:

      指派自變數

      這很重要

      請勿使用此對話框變更自變數 NameDirectionType。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value。 如圖所示,會設定值 wsResponse

  6. 在 WebServiceCallActivity 下方新增 ForEach 活動。 此活動可用來逐一查看物件類型的所有屬性(錨點和非錨點)。 將這個活動拖曳到工作流程設計工具介面時,會自動列舉物件的所有屬性名稱。 根據下列畫面設定必要的值:

    Web 服務呼叫活動

  7. 在某些情況下,您可能需要開啟 WsConfig 檔案內的 generated.dll。 複製此 WsConfig 檔案,並以 .zip 擴展名重新命名。 使用您偏好的 .NET 反射器工具來開啟並擷取 generated.dll。

    組態檔

  8. 識別 EmployeeList的公用命名空間:

    員工清單代碼

    接下來,將此返回值添加至工作流程 ForEach

    將員工清單新增至 ForEach 工作流程

  9. CreateCSEntryChangeScope 活動拖曳到 ForEach 主體內。 此活動可用來在工作流程網域中為每個個別記錄建立 CSEntryChange 對象的實例,同時從目標數據源擷取數據。 拖曳此活動會顯示以下的畫面。 CreateAnchorAttribute 的活動會自動被繼承。 將 DN 的值更新為您慣用的網域名稱。

    建立 CS 專案變更範圍活動

    備註

    錨點值和物件名稱會根據公開的Web服務而有所不同。 此圖顯示範例。

  10. CreateAttributeChange 活動拖曳到 CreateAnchorAttribute 活動下方。 要拖曳的活動數目等於非錨點屬性的數目。 如需參考,請參閱下圖。

    建立錨點

    備註

    若要使用此活動,請從下拉式清單中挑選並指派個別的欄位,並指派值。 針對多重值屬性,請在 createAttributeChangeActivity 活動 內卸除多個 CreateValueChangeActivity 活動。

  11. 將這個項目儲存在 位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions。 然後設定管理代理程式,如 Web Service MA 組態中所述,

    儲存 REST 專案

    默認專案應下載並儲存在目標系統上的位置 %FIM_INSTALL_DIR\2010\Synchronization Service\Extensions。 然後,項目會顯示在 Web 服務連接器精靈中。

    執行可執行檔時,系統會提示您指定安裝的位置。 輸入儲存位置。

    這很重要

    項目檔可以從任何位置儲存和開啟(具有其執行程式的適當訪問許可權)。 只有儲存至 Synchronization Service\Extension 資料夾的項目檔,才能在透過 MIM 同步處理 UI 存取的 Web 服務連接器精靈中選取。

    執行 Web 服務組態工具的使用者需要下列權限:

    • 同步服務擴充資料夾的完整控制。
    • 讀取 HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters 登錄機碼的存取權,以定位 Extension 資料夾的路徑。

後續步驟