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

本文說明如何在 Web 服務設定工具中為您的資料來源建立新專案。 請遵循下列步驟來建立專案。

  1. 開啟 [Web 服務設定工具]。 它會開啟空白專案。

    Web 服務設定工具

  2. 選取 [ SOAP Project然後選取 [加入]。

    SOAP 專案

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

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

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

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

    web 服務下載進度畫面

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

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

  7. 執行編譯。 編譯是編譯資料合約元件的程式,可能是耗時的作業。 使用者會收到任何編譯錯誤的通知。 執行探索之後,此工具會顯示下列頁面:

    Soap 探索

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

    在結束點下宣告的作業

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

    展開的端點

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

    定義物件類型

  11. 加入物件類型會提供以下畫面。

    查看新建立的物件類型

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

    屬性和資料類型

    已選取錨定選項的屬性和資料類型

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

    具有屬性資訊的物件類型

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

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

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

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

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

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

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

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

注意

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

工作流程設計工具

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

工作流程設計工具

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

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

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

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

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

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

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

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

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

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

    • Common:設定任何工作流程的自訂活動。

    • Debug:工作流程4中定義之偵錯工具的系統工作流程活動。 這些活動可讓工作流程追蹤問題。

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

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

  • 工作列: 工作列包含三個元素: 變數變數和匯 。 這些元素會與工作流程活動一起使用。 如需詳細資訊,請參閱《開發人員 Windows Workflow Foundation 在 .net 4 中 (WF) 的簡介

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

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

警告

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

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

    完整匯入工作流程引數

    匯入的命名空間

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

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

    Sequence 活動

  3. 若要加入變數,請找出 Create variable。 輸入 wsResponse 作為 [ 名稱],選取 [ 變數類型 ] 下拉式清單,然後選取 [流覽類型]。 對話方塊隨即顯示。 選取 [產生預設回應]。 讓 範圍 和預設值保持未選取 狀態 。 或者,使用 [ 屬性 ] 視圖來設定這些值。

    預設回應

    完整匯入屬性

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

    完整匯入變數

  5. 從 [工具箱] 中的 [序列] 活動中,拖曳一個 [序列] 活動設計工具

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

    服務名稱操作

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

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

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

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

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

      指派引數

      重要

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

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

    Web 服務呼叫活動

  8. CreateCSEntryChangeScope 活動拖曳至 ForEach 主體內。 此活動是用來在工作流程網域中,為每個個別記錄建立 CSEntryChange 物件的實例,同時從目標資料來源抓取資料。 拖曳此活動可提供以下畫面。 系統會自動繼承CreateAnchorAttribute活動。

    建立 CS 專案變更範圍活動

  9. 將 DN 運算式的值設定為 ‘string.Concat ("Employee",item.EmployeeID)’ 。 將 [雇員 id ] 的AnchorValue設定為' Convert (專案。員工) '。 將 ObjectTypeName 設定為 Employee。 進行這些修改之後,您會看到下列畫面:

    取得員工識別碼

    注意

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

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

    建立錨點

  11. CreateValueChangeActivity 拖曳到 [ CreateAttributeChange ] 活動內,並根據下一個畫面設定屬性值。

    變更屬性

    注意

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

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

    If 活動

  13. 最後,加入 Assign 活動並設定運算式,如下圖所示:

    指派活動並設定運算式

  14. 將此專案儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

    您應該下載預設專案,並將其儲存在 %FIM_INSTALL_DIR\2010\Synchronization Service\Extensions 目標系統上的位置。 然後您就可以在 web 服務連接器的 wizard 中看到這些專案。

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

    重要

    您可以使用其執行程式) 的適當存取權限,從任何位置儲存並開啟專案檔 (。 只有儲存到資料夾的專案檔 Synchronization Service\Extension 可以在 Web 服務連接器的 wizard 中選取,此瀏覽器會透過 MIM 同步處理 UI 來存取。

    正在執行 Web 服務設定工具的使用者需要下列許可權:

    • 對同步處理服務延伸資料夾的完整控制權。
    • 登錄機碼的讀取權限 HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters ,擴充功能資料夾路徑位於此。

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

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

新增工作流程

在 Web 服務設定工具中,依照下列步驟新增匯出工作流程。
  1. 選取要設定的匯出工作流程。 選取 [ 匯出] 下的 [ 新增]。 引數和匯已定義,而且是活動特有的。 請參閱下列畫面以取得參考。

    添加

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

    匯出

    注意

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

  3. ForEach 活動拖曳至已加入的 序列 活動中,以反復查看錨點屬性值。

  4. 選取 [ 屬性 ],並根據下一個畫面設定這些 。 這裡的 objectToExport 是引數。

    設定 ForEach 活動的屬性

  5. DisplayName設定 ForEach AnchorAttribute

    設定顯示名稱

  6. TypeArgument 設定為

    設定類型引數

  7. AnchorAttributeForEach主體內新增切換活動。

    新增交換器活動

  8. 依據以下畫面新增運算式。

    新增運算式

  9. 選取 [ 加入新的案例 ],並輸入 [ 員工] 的值。 拖曳 [ Sequence ] 活動,然後在其中加入「 指派 」活動。

    新增案例,並將其指派給序列

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

    指派給和值屬性

  11. ForEach活動用於錨點值。 加入其他 ForEach 活動以指派非錨點值。 在此範例中,會使用 AttributeChange 錨點。

    使用 AttributeChange 錨點新增其他 ForEach 活動

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

    新增 AttributeChange 錨點的交換器活動

  13. 依據以下畫面新增運算式。

    新增 switch 活動的運算式

  14. 選取 [ 加入新的案例 ],並輸入 FirstName的值。 拖曳 [ Sequence ] 活動,然後在其中加入「 指派 」活動。 指派assign活動的ToValue屬性。

    新增序列的新案例

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

    新增必要屬性的值

  16. 在 [一般] 下,拖曳WebServiceCallActivity並設定其引數

    新增 Web 服務呼叫活動並設定值

    重要

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

  17. 最後,加入 If 活動以檢查 web 服務作業所傳回的回應。

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

已完成匯出工作流程

將此專案儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

刪除工作流程

請在 Web 服務設定工具中遵循下列步驟來刪除匯出工作流程。

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

    匯出刪除工作流程

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

    新增序列活動

    注意

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

  3. ForEach 活動拖曳至已加入的 序列 活動中,以反復查看錨點屬性值。

  4. 選取 [ 屬性 ],並設定下列每個畫面的 。 這裡的 objectToExport 是引數。

    設定 ForEach 活動的屬性

  5. DisplayName 設定為

    設定顯示名稱

  6. TypeArgument 設定為

    設定類型引數

  7. AnchorAttributeForEach主體內新增切換活動。

    新增交換器活動

  8. 依據以下畫面新增運算式。

    新增運算式

  9. 選取 [ 加入新的案例 ],並輸入 [ 員工] 的值。 拖曳 [ Sequence ] 活動,然後在其中加入「 指派 」活動。

    新增案例,並將其指派給序列

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

    指派給和值屬性

  11. 在 [一般] 下,拖曳WebServiceCallActivity並設定其引數

    新增 Web 服務呼叫活動並設定值

    重要

    請勿使用這個對話方塊變更引數的 名稱方向類型 。 如果這些值有任何變更,活動就會變成無效。 只設定引數的 。 如本圖所示,已設定值 [ 員工 ]。

  12. 最後,加入 If 活動以檢查 web 服務作業所傳回的回應。

刪除作業刪除匯出工作流程已完成:

已刪除匯出工作流程

將此專案儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

取代工作流程

請在 Web 服務設定工具中遵循下列步驟來取代匯出工作流程。

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

    取代工作流程

  2. 新增 序列 活動。

  3. 拖曳 AnchorAttribute 的ForEach活動

  4. 新增其他ForEach AttributeChange >活動以指派非錨點值。

  5. 最後,畫面看起來如下圖所示。 新增匯出工作流程一節中會提供設定此活動的指示。

    使用 Switch 活動和錨點屬性的 ForEach

  6. 在 [一般] 下,拖曳WebServiceCallActivity並設定其引數

    新增 Web 服務呼叫活動並設定值

    重要

    請勿使用這個對話方塊變更引數的 名稱方向類型 。 如果這些值有任何變更,活動就會變成無效。 只設定引數的 。 如下圖所示,設定 employee 的值。

  7. 最後,加入 If 活動以檢查 web 服務作業所傳回的回應。

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

取代匯出工作流程

將此專案儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

Debug 活動

下列自訂活動可協助您進行工作流程範本的調試。

記錄活動

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

注意

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

若要使用 記錄 活動,請設定下列屬性。 當您在工作流程設計工具中選取活動並查看活動的 屬性 時,就會顯示這些屬性。

WriteLine 活動

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

在文字方塊中,撰寫您要在寫入器目標中顯示的訊息。

重要

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

若要使用 WriteLine 活動,請設定下列屬性。 當您在工作流程設計工具中選取活動並查看活動的 屬性 時,就會顯示這些屬性。

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

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

  • Tag:將標記加入至文字,以識別記錄檔中所寫入的內容類型。 可能的值為: Error、Trace 或 Warning。

下一步