SOAP 的 Web 服務連接器工作流程指南

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

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

    Web 服務組態工具

  2. 選取 [SOAP 專案 ],然後選取 [ 新增]。

    SOAP 專案

  3. 在下一個頁面上,提供下列資訊,然後選取 [ 下一步]:

    • 新的 Web 服務名稱
    • 尋址 (WSDL 路徑) ,以擷取公開的服務、端點和作業
    • 命名空間
    • 安全性模式 (驗證類型)
  4. 在此範例中,[ 認證 ] 頁面會顯示 [ 基本 安全性模式] 的需求, (在上一個步驟中選取的模式) 。 如果已針對安全性模式指定 「None」,則不會顯示 [認證] 頁面。 選取 [下一步] 。

    具有使用者名稱和密碼的SOAP服務畫面

  5. 正在存取 WSDL 路徑以擷取服務資訊,並顯示公開函式的清單。 如果輸入的 WSDL 路徑不正確,則組態工具無法擷取服務資訊並擲回錯誤。

    Web 服務下載進度畫面

  6. 執行探索之後,它會列出所探索的端點和作業。 選取 [完成]。

    探索到的SOAP服務端點和作業

  7. 正在執行編譯。 編譯是編譯數據合約元件的程式,可能是耗時的作業。 系統會通知使用者是否有任何編譯錯誤。 執行探索之後,此工具會顯示下列頁面:

    Soap 探索

  8. 展開 SOAP專案 ,然後選取下方畫面提供的公開端點。 此畫面會列出在端點下宣告的作業。

    在端點下宣告的作業

  9. 展開端點會顯示作業清單。 作業是由端點所宣告的函式。 每個作業都會解決可在服務內執行的工作類型。 此畫面會列出針對作業所宣告的自變數。 這些自變數接著會在設定工作流程時使用作業來定義。

    展開的端點

  10. 下一個步驟是定義連接器空間架構,這是藉由建立物件類型並定義其物件類型來達成。 選取 [物件類型 ],然後選取 [ 新增]。 在新視窗中,新增物件類型並提供名稱。 選取 [確定]。

    定義物件類型

  11. 新增物件類型提供以下畫面。

    檢視新建立的物件類型

  12. 對應至物件類型的右窗格可讓您維護所選取物件類型的屬性及其屬性。 選取 [新增]。 開啟新的視窗以新增屬性:

    屬性和數據類型

    已選取 [錨點] 選項的屬性和數據類型

  13. 新增所有必要的屬性之後,會出現下列畫面:

    具有屬性信息的物件類型

  14. 一旦建立物件類型和屬性,就會提供空白工作流程,以滿足在 2016 Microsoft Identity Manager 2016 (MIM) 中執行的作業。

    物件類型會顯示員工可執行的作業

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

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

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

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

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

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

注意

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

工作流程設計工具

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

工作流程設計工具

工作流程 Designer 是由下列 UI 元素所組成:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

警告

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

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

    完整匯入工作流程自變數

    匯入的命名空間

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

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

    時序活動

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

    預設回應

    完整匯入屬性

  4. 現在新增所有其他變數,以下是最後一個畫面。

    完整匯入變數

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

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

    服務名稱作業

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

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

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

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

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

      指派自變數

      重要

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

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

    Web 服務呼叫活動

  8. ForEach 主體內拖曳 CreateCSEntryChangeScope 活動。 此活動是用來在每個個別記錄的工作流程網域中建立 CSEntryChange 對象的實例,同時從目標數據源擷取數據。 拖曳此活動提供以下畫面。 CreateAnchorAttribute 活動會自動繼承。

    建立 CS 專案變更範圍活動

  9. 將 DN 表示式的值設定為 ‘string.Concat ("Employee",item.EmployeeID)’。 將 EmployeeIDAnchorValue 設定為 'Convert.tostring (專案。EmployeeID) '。 將 ObjectTypeName 設定為 Employee。 進行這些修改之後,您會看到下列畫面:

    取得員工標識碼

    注意

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

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

    建立錨點

  11. CreateAttributeChange 活動內拖曳 CreateValueChangeActivity,並依照下列畫面設定屬性值。

    變更屬性

    注意

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

  12. 若要新增屬性的條件,請新增 If 活動,如下圖所示:

    If 活動

  13. 最後,新增 Assign 活動並設定表示式,如下圖所示:

    指派活動並設定表達式

  14. 將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

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

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

    重要

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

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

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

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

下列各節說明如何使用 Web 服務組態工具匯出工作流程。

新增工作流程

遵循 Web 服務組態工具中的下列步驟來新增匯出工作流程。
  1. 選取要設定的導出工作流程。 在 [導出] 底下,選取 [ 新增]。 自變數入已定義,而且是活動特有的。 請參閱下列畫面以取得參考。

    顯示瀏覽面板中 [新增] 的螢幕快照。

  2. 新增 時序 活動。 將 [順序] 活動設計工具從 [工具箱] 拖曳到 Windows 工作流程 Designer 介面。 Sequence 活動包含依序執行的子活動排序集合。 選取 [建立變數]。 將值指派給要用於邏輯的變數。

    匯出

    注意

    新增變數的步驟會在建立 完整匯入工作流程一節中說明。

  3. 拖曳已新增 Sequence 活動內的 ForEach 活動,以逐一查看錨點屬性值。

  4. 選取 [屬性 ],然後根據下列畫面設定 [值 ]。 這裡 objectToExport 是自變數。

    顯示 ForEach 活動所設定值的螢幕快照。

  5. DisplayName 設定為 ForEach<AnchorAttribute>

    顯示設定 DisplayName 的螢幕快照。

  6. TypeArgument 設定為 Microsoft.MetadirectoryServices.AnchorAttribute

    顯示 Set TypeArgument 的螢幕快照。

  7. AnchorAttributeForEach 主體內新增 Switch 活動。

    此螢幕快照顯示如何在 AnchorAttribute 的 ForEach 主體內新增 Switch 活動。

  8. 依照下列畫面新增表達式。

    新增表達式

  9. 選取 [新增案例 ],然後輸入 EmployeeId 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。

    顯示如何為員工 I d 新增案例的螢幕快照。

  10. 指派 Assign 活動的ToValue 屬性。

    顯示此活動的 [To] 和 [值] 屬性的螢幕快照。

  11. ForEach 活動用於錨點值。 新增另一個 ForEach 活動以指派非錨點值。 在此範例中,會使用 AttributeChange 錨點。

    使用 AttributeChange 錨點新增另一個 ForEach 活動

  12. AttributeChange 錨點的 ForEach 主體內新增 Switch 活動。

    新增 AttributeChange 錨點的 Switch 活動

  13. 依照下列畫面新增表達式。

    新增參數活動的表達式

  14. 選取 [新增大小寫 ],然後輸入 FirstName 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。 指派 Assign 活動的ToValue 屬性。

    新增序列的新案例

  15. 新增 LastNameEmail 等必要屬性的值。

    新增必要屬性的值

  16. [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。

    顯示 Web 服務呼叫活動和設定值的螢幕快照區段。

    重要

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

  17. 最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。

使用 [新增 ] 作業建立匯出工作流程已完成:

已完成匯出工作流程

將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

刪除工作流程

遵循 Web 服務組態工具中的下列步驟來刪除匯出工作流程。

  1. 選取要設定的導出工作流程。 在 [匯出] 底下,選取 [ 刪除]。 自變數入已定義,而且是活動特有的。 請參閱下列畫面以取得參考。

    匯出刪除工作流程

  2. 新增 時序 活動。 選取 [建立變數]。 將值指派給要用於邏輯的變數。

    新增序列活動

    注意

    新增變數的步驟會在建立 完整匯入工作流程一節中說明。

  3. 拖曳已新增 Sequence 活動內的 ForEach 活動,以逐一查看錨點屬性值。

  4. 選取 [屬性 ],並設定下列畫面中的 [值 ]。 這裡 objectToExport 是自變數。

    顯示如何設定 ForEach 活動屬性的螢幕快照。

  5. DisplayName 設定為 ForEach\<AnchorAttribute\>

    顯示如何設定顯示名稱的螢幕快照。

  6. TypeArgument 設定為 Microsoft.MetadirectoryServices.AnchorAttribute

    顯示如何設定類型自變數的螢幕快照。

  7. AnchorAttributeForEach 主體內新增 Switch 活動。

    顯示新增 Switch 活動的螢幕快照。

  8. 依照下列畫面新增表達式。

    新增表達式

  9. 選取 [新增案例 ],然後輸入 EmployeeId 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。

    顯示新增案例並將其指派給序列的螢幕快照。

  10. 指派 Assign 活動的ToValue 屬性。

    顯示如何為指派活動指派 [To] 和 [值] 屬性的螢幕快照。

  11. [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。

    顯示用於新增 Web 服務呼叫活動的自變數值的螢幕快照和呼叫。

    重要

    請勿使用此對話框來變更自變數 的名稱方向類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,已設定 employeeID 值。

  12. 最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。

使用 Delete 作業移除匯出工作流程已完成:

已刪除的匯出工作流程

將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

取代工作流程

依照 Web 服務組態工具中的下列步驟來取代匯出工作流程。

  1. 選取要設定的導出工作流程。 在 [導出] 底下,選取 [ 取代]。 自變數入已定義,而且是活動特有的。 請參閱下方畫面以取得參考。

    取代工作流程

  2. 新增 時序 活動。

  3. 拖曳 AnchorAttribute> 的<ForEach 活動。

  4. 新增另一個 ForEach<AttributeChange> 活動以指派非錨點值。

  5. 最後,畫面看起來像下圖。 如需設定此活動的指示,請參閱 新增導出工作流程一節。

    ForEach 搭配 Switch 活動和錨點屬性

  6. [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。

    顯示新增 Web 服務呼叫活動的值的螢幕快照。

    重要

    請勿使用此對話框來變更自變數 的名稱方向類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,已設定 員工 值。

  7. 最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。

使用 Replace 作業取代匯出工作流程已完成:

取代導出工作流程

將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

偵錯活動

下列自定義活動可用來協助偵錯工作流程範本。

記錄活動

記錄活動是用來將文字訊息寫入記錄檔。 如需詳細資訊,請參閱記錄

注意

如果您無法輕鬆地對工作流程進行偵錯,請嘗試在生產環境中偵錯工作流程。

若要使用 記錄 活動,請設定下列屬性。 當您在工作流程 Designer 中選取活動,並檢視活動的 [屬性] 時,會顯示這些屬性。

WriteLine 活動

WriteLine 活動是用來將文字訊息寫入提供者的寫入器。 如果沒有寫入器可用, WriteLine 活動會將文字寫入主控台視窗。

在文字框中,撰寫您想要在寫入器目標中看到的訊息。

重要

主控台視窗無法用於此活動。 針對這項工作使用另一個窗口輸出寫入器。

若要使用 WriteLine 活動,請設定下列屬性。 當您在工作流程 Designer 中選取活動,並檢視活動的 [屬性] 時,會顯示這些屬性。

  • 記錄層級:指定要在記錄值中寫入的內容數量。 可能的值包括:

    • 高:如果記錄嚴重性設定為 High,請將 LogText 訊息寫入記錄檔。
    • 詳細資訊:如果記錄嚴重性設定為 Verbose,請將 LogText 訊息寫入記錄檔。
    • 已停用:不要在記錄檔中寫入。
  • LogText:指定要在記錄檔中寫入的文字內容。

  • 標記:將標記新增至文字,以識別正在記錄檔中寫入的內容類型。 可能的值為:錯誤、追蹤或警告。

下一步