SOAP 的 Web 服務連接器工作流程指南
本文說明如何在 Web 服務組態工具中為您的數據源建立新的專案。 請遵循下列步驟來建立專案。
開啟 Web 服務組態工具。 它會開啟空白專案。
選取 [SOAP 專案 ],然後選取 [ 新增]。
在下一個頁面上,提供下列資訊,然後選取 [ 下一步]:
- 新的 Web 服務名稱
- 尋址 (WSDL 路徑) ,以擷取公開的服務、端點和作業
- 命名空間
- 安全性模式 (驗證類型)
在此範例中,[ 認證 ] 頁面會顯示 [ 基本 安全性模式] 的需求, (在上一個步驟中選取的模式) 。 如果已針對安全性模式指定 「None」,則不會顯示 [認證] 頁面。 選取 [下一步] 。
正在存取 WSDL 路徑以擷取服務資訊,並顯示公開函式的清單。 如果輸入的 WSDL 路徑不正確,則組態工具無法擷取服務資訊並擲回錯誤。
執行探索之後,它會列出所探索的端點和作業。 選取 [完成]。
正在執行編譯。 編譯是編譯數據合約元件的程式,可能是耗時的作業。 系統會通知使用者是否有任何編譯錯誤。 執行探索之後,此工具會顯示下列頁面:
展開 SOAP專案 ,然後選取下方畫面提供的公開端點。 此畫面會列出在端點下宣告的作業。
展開端點會顯示作業清單。 作業是由端點所宣告的函式。 每個作業都會解決可在服務內執行的工作類型。 此畫面會列出針對作業所宣告的自變數。 這些自變數接著會在設定工作流程時使用作業來定義。
下一個步驟是定義連接器空間架構,這是藉由建立物件類型並定義其物件類型來達成。 選取 [物件類型 ],然後選取 [ 新增]。 在新視窗中,新增物件類型並提供名稱。 選取 [確定]。
新增物件類型提供以下畫面。
對應至物件類型的右窗格可讓您維護所選取物件類型的屬性及其屬性。 選取 [新增]。 開啟新的視窗以新增屬性:
新增所有必要的屬性之後,會出現下列畫面:
一旦建立物件類型和屬性,就會提供空白工作流程,以滿足在 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 中使用自訂邏輯。
選取要設定的完整匯入工作流程。 自變數和匯入已定義,而且是活動特有的。 如需詳細資訊,請參閱下列畫面。
重新設定呼叫之後,請變更變更的屬性名稱,將命名空間新增或變更為參考 API 傳回結構的變數,以及參考舊命名空間的物件類型。 右窗格中的工具箱會保存設定所需的所有自定義工作流程特定活動。 將值指派給要用於邏輯的變數。 移至中央工作流程設計工具的底部區段,並宣告變數。 變數會在下一個步驟中宣告。
新增時序活動。 將 [順序] 活動設計工具從 [工具箱] 拖曳到 Windows 工作流程 Designer 介面。 請參閱下列畫面。 Sequence 活動包含依序執行的子活動排序集合。
若要新增變數,請找出 [建立變數]。 針對 [名稱] 輸入 wsResponse,選取 [變數類型] 下拉式清單,然後選取 [瀏覽類型]。 隨即顯示對話框。 選取 產生的>預設>回應。 將 [範圍 ] 和 [ 預設值 ] 保持為未選取狀態。 或者,使用 [ 屬性 ] 檢視來設定這些值。
現在新增所有其他變數,以下是最後一個畫面。
將一個序列活動設計工具從已新增的 Sequence 活動內的 [工具箱 ] 拖曳。
拖曳顯示在 [一般] 底下的 WebServiceCallActivity。此活動用來叫用探索之後可用的 Web 服務作業。 這是自定義活動,而且在不同的作業案例中很常見。
若要使用 Web 服務作業,請設定下列屬性:
服務名稱:輸入 Web 服務的名稱。
端點名稱:指定所選服務的端點名稱。
作業名稱:指定服務的個別作業。
自變數:選取 自變數。 在下一個對話框中,指派自變數值,如下圖所示:
重要
請勿使用此對話框來變更自變數 的名稱、 方向或 類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,會設定 wsResponse 值。
在 WebServiceCallActivity 下方新增 ForEach 活動。此活動是用來逐一查看物件類型的錨點和非錨點) 的所有屬性 (。 將這個活動拖曳到工作流程 Designer 介面時,它會自動列舉物件的所有屬性名稱。 根據下列畫面設定必要的值:
在 ForEach 主體內拖曳 CreateCSEntryChangeScope 活動。 此活動是用來在每個個別記錄的工作流程網域中建立 CSEntryChange 對象的實例,同時從目標數據源擷取數據。 拖曳此活動提供以下畫面。 CreateAnchorAttribute 活動會自動繼承。
將 DN 表示式的值設定為
‘string.Concat ("Employee",item.EmployeeID)’
。 將 EmployeeID 的 AnchorValue 設定為 'Convert.tostring (專案。EmployeeID) '。 將 ObjectTypeName 設定為 Employee。 進行這些修改之後,您會看到下列畫面:注意
錨點值和物件名稱會根據公開的Web服務而有所不同。 此圖顯示範例。
將 CreateAttributeChange 活動拖曳到 CreateAnchorAttribute 活動下方。 要拖曳的活動數目等於非錨點屬性的數目。 請參閱下圖以取得參考。
在 CreateAttributeChange 活動內拖曳 CreateValueChangeActivity,並依照下列畫面設定屬性值。
注意
若要使用此活動,請從下拉式清單中挑選並指派個別欄位,並指派值。 若為多重值屬性,請在 CreateAttributeChangeActivity 活動內卸除多個 CreateValueChangeActivity 活動。
若要新增屬性的條件,請新增 If 活動,如下圖所示:
最後,新增 Assign 活動並設定表示式,如下圖所示:
將此項目儲存在位置
%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 服務組態工具中的下列步驟來新增匯出工作流程。選取要設定的導出工作流程。 在 [導出] 底下,選取 [ 新增]。 自變數和匯入已定義,而且是活動特有的。 請參閱下列畫面以取得參考。
新增 時序 活動。 將 [順序] 活動設計工具從 [工具箱] 拖曳到 Windows 工作流程 Designer 介面。 Sequence 活動包含依序執行的子活動排序集合。 選取 [建立變數]。 將值指派給要用於邏輯的變數。
注意
新增變數的步驟會在建立 完整匯入工作流程一節中說明。
拖曳已新增 Sequence 活動內的 ForEach 活動,以逐一查看錨點屬性值。
選取 [屬性 ],然後根據下列畫面設定 [值 ]。 這裡 objectToExport 是自變數。
將 DisplayName 設定為 ForEach<AnchorAttribute>
將 TypeArgument 設定為
Microsoft.MetadirectoryServices.AnchorAttribute
。在 AnchorAttribute 的 ForEach 主體內新增 Switch 活動。
依照下列畫面新增表達式。
選取 [新增案例 ],然後輸入 EmployeeId 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。
指派 Assign 活動的To 和 Value 屬性。
ForEach 活動用於錨點值。 新增另一個 ForEach 活動以指派非錨點值。 在此範例中,會使用 AttributeChange 錨點。
在 AttributeChange 錨點的 ForEach 主體內新增 Switch 活動。
依照下列畫面新增表達式。
選取 [新增大小寫 ],然後輸入 FirstName 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。 指派 Assign 活動的To 和 Value 屬性。
新增 LastName、Email 等必要屬性的值。
在 [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。
重要
請勿使用此對話框來變更自變數 的名稱、 方向或 類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,會設定 wsResponse 值。
最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。
使用 [新增 ] 作業建立匯出工作流程已完成:
將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
。
刪除工作流程
遵循 Web 服務組態工具中的下列步驟來刪除匯出工作流程。
選取要設定的導出工作流程。 在 [匯出] 底下,選取 [ 刪除]。 自變數和匯入已定義,而且是活動特有的。 請參閱下列畫面以取得參考。
新增 時序 活動。 選取 [建立變數]。 將值指派給要用於邏輯的變數。
注意
新增變數的步驟會在建立 完整匯入工作流程一節中說明。
拖曳已新增 Sequence 活動內的 ForEach 活動,以逐一查看錨點屬性值。
選取 [屬性 ],並設定下列畫面中的 [值 ]。 這裡 objectToExport 是自變數。
將 DisplayName 設定為
ForEach\<AnchorAttribute\>
:將 TypeArgument 設定為
Microsoft.MetadirectoryServices.AnchorAttribute
:在 AnchorAttribute 的 ForEach 主體內新增 Switch 活動。
依照下列畫面新增表達式。
選取 [新增案例 ],然後輸入 EmployeeId 的值。 拖曳 時序 活動,並在其中新增 [指派 ] 活動。
指派 Assign 活動的To 和 Value 屬性。
在 [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。
重要
請勿使用此對話框來變更自變數 的名稱、 方向或 類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,已設定 employeeID 值。
最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。
使用 Delete 作業移除匯出工作流程已完成:
將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
。
取代工作流程
依照 Web 服務組態工具中的下列步驟來取代匯出工作流程。
選取要設定的導出工作流程。 在 [導出] 底下,選取 [ 取代]。 自變數和匯入已定義,而且是活動特有的。 請參閱下方畫面以取得參考。
新增 時序 活動。
拖曳 AnchorAttribute> 的<ForEach 活動。
新增另一個 ForEach<AttributeChange> 活動以指派非錨點值。
最後,畫面看起來像下圖。 如需設定此活動的指示,請參閱 新增導出工作流程一節。
在 [一般] 底下,拖曳 WebServiceCallActivity,併為其 [自變數] 設定 [值]。
重要
請勿使用此對話框來變更自變數 的名稱、 方向或 類型 。 如果這些值有任何變更,活動就會變成無效。 只設定自變數的 Value 。 如圖所示,已設定 員工 值。
最後,新增 If 活動以檢查從 Web 服務作業傳回的回應。
使用 Replace 作業取代匯出工作流程已完成:
將此項目儲存在位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
。
偵錯活動
下列自定義活動可用來協助偵錯工作流程範本。
記錄活動
記錄活動是用來將文字訊息寫入記錄檔。 如需詳細資訊,請參閱記錄。
注意
如果您無法輕鬆地對工作流程進行偵錯,請嘗試在生產環境中偵錯工作流程。
若要使用 記錄 活動,請設定下列屬性。 當您在工作流程 Designer 中選取活動,並檢視活動的 [屬性] 時,會顯示這些屬性。
WriteLine 活動
WriteLine 活動是用來將文字訊息寫入提供者的寫入器。 如果沒有寫入器可用, WriteLine 活動會將文字寫入主控台視窗。
在文字框中,撰寫您想要在寫入器目標中看到的訊息。
重要
主控台視窗無法用於此活動。 針對這項工作使用另一個窗口輸出寫入器。
若要使用 WriteLine 活動,請設定下列屬性。 當您在工作流程 Designer 中選取活動,並檢視活動的 [屬性] 時,會顯示這些屬性。
記錄層級:指定要在記錄值中寫入的內容數量。 可能的值包括:
- 高:如果記錄嚴重性設定為 High,請將 LogText 訊息寫入記錄檔。
- 詳細資訊:如果記錄嚴重性設定為 Verbose,請將 LogText 訊息寫入記錄檔。
- 已停用:不要在記錄檔中寫入。
LogText:指定要在記錄檔中寫入的文字內容。
標記:將標記新增至文字,以識別正在記錄檔中寫入的內容類型。 可能的值為:錯誤、追蹤或警告。