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 路徑
    • 命名空間
    • 安全性模式 (驗證類型)

    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. 一旦建立物件類型和屬性,就會提供空白工作流程,以符合在 MIM Microsoft Identity Manager () 中執行的作業。

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

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

  • 匯入:從資料來源匯入下列兩種類型的工作流程資料:

    • 完整匯入:可設定的完整匯入。
    • 差異匯入:Web 服務組態工具不支援。
  • 匯出:將資料從 MIM 匯出至連接的資料來源。 作業支援下列三個動作。 您可以根據您的需求來設定這些動作。

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

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

注意

您可以為專案設定這些工作流程,或從 Microsoft 下載中心下載預設專案。

工作流程設計工具

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

工作流程設計工具

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

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

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

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

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

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

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

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

    • 匯入工作流程:用來設定匯入工作流程的自訂活動。

    • 匯出工作流程:用來設定匯出工作流程的自訂活動。

    • 常見:用來設定任何工作流程的自訂活動。

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

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

  • 屬性:[屬性] 索引標籤會顯示在設計工具區域中卸載並選取之特定工作流程活動的屬性。 左邊的圖顯示 Assign 活動的屬性。 針對每個活動,屬性會有所不同,並在設定自訂工作流程時使用。 此索引標籤可讓您定義已卸載至中央工作流程設計工具之所選工具的屬性。 如需詳細資訊,請參閱 屬性中定義的介面的私用 C++ 專屬實作。

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

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

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

警告

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

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

    完整匯入工作流程引數

    匯入的命名空間

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

  2. 新增時序活動。 將 [順序 ] 活動設計工具從 [工具箱 ] 拖曳至 [Windows 工作流程設計工具] 介面。 請參閱下列畫面。 Sequence活動包含依序執行的子活動的已排序集合。

    時序活動

  3. 若要新增變數,請找出 [建立變數]。 針對[名稱] 輸入wsResponse,選取[變數類型] 下拉式清單,然後選取 [流覽類型]。 隨即顯示對話方塊。 選取產生的>GETALL>回應。 取消選取 [範圍 ] 和 [ 預設值 ]。 或者,使用 [屬性 ] 檢視來設定這些值。

    預設回應

  4. 將一個序列活動設計工具從已新增 的 Sequence 活動內的 [工具箱 ] 拖曳。

  5. 拖曳顯示于[一般] 底下的WebServiceCallActivity。此活動可用來叫用探索之後可用的 Web 服務作業。 這是自訂活動,而且在不同的作業案例中很常見。

    服務名稱作業

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

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

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

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

    • 引數:選取 引數。 在下一個對話方塊中,指派引數值,如下圖所示:

      指派引數

      重要

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

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

    Web 服務呼叫活動

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

    組態檔

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

    員工清單程式碼

    接下來,將此傳回新增至工作流程 ForEach

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

  9. 拖曳ForEach主體內的CreateCSEntryChangeScope活動。 此活動可用來在每個個別記錄的工作流程網域中建立 CSEntryChange 物件的實例,同時從目標資料來源擷取資料。 拖曳此活動提供下方畫面。 CreateAnchorAttribute 活動會自動繼承。 將 DN 值更新為您慣用的功能變數名稱。

    建立 CS 專案變更範圍活動

    注意

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

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

    建立錨點

    注意

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

  11. 將此專案儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions 。 然後,如 Web 服務 MA 組態中所述,設定管理代理程式。

    儲存 REST 專案

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

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

    重要

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

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

    • 同步處理服務延伸模組資料夾的完整控制。
    • 登錄機碼 HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters 的讀取存取權,而此登錄機碼的 [延伸模組] 資料夾路徑位於其中。

下一步