逐步解說:搭配使用訊息安全性模式與 WCF-NetTcp 配接器
注意
如需配接器的詳細資訊,請參閱BizTalk Server 中的配接器。
簡介
本逐步解說示範如何將 WCF-NetTcp 配接器設定為使用 Windows Communication Foundation (WCF) 訊息安全性模式,該模式會使用 WS-Security 規格來協助保護介面卡傳輸的訊息。 此規格描述 SOAP 傳訊通訊協定的增強功能,以在 SOAP 訊息層級完成機密性、完整性和驗證。 訊息安全性模式需要針對加密/解密和簽署/驗證等作業指定服務憑證,視安全性模式組合而定。
WCF-NetTcp 配接器會使用 NetTcpBinding 系結在 WCF 用戶端與 WCF 遠端服務之間進行通訊。 該配接器可完整存取 SOAP 安全性、可靠性和交易功能。 它可讓協調流程和架構發佈為 WCF 服務,也可讓您讓協調流程取用外部 WCF 服務。 此配接器使用 TCP 傳輸,而且訊息具有二進位編碼。 WCF-NetTcp 配接器包含傳送配接器和接收配接器。
本逐步解說示範如何使用 Active Directory 憑證服務建立訊息安全性模式的憑證。 您將建立伺服器和用戶端的憑證,然後將 WCF-NetTcp 接收位置設定為在訊息安全性模式中使用憑證。 藉由使用 WCF 用戶端,您將根據 XML 加密語法和處理,將訊息傳送至該接收位置處於加密狀態。
完成此逐步解說之後,您將會瞭解如何執行下列工作:
使用 Active Directory 憑證服務來建立憑證要求,並藉由發行憑證來完成程式。
從 BizTalk Server 管理主控台,將 WCF-NetTcp 配接器設定為使用訊息安全性模式。
必要條件
若要執行此範例中的步驟,請確定您的環境會安裝下列必要條件;
建置元件並執行部署程式的電腦,以及執行範例的電腦都需要 Microsoft Windows Server 2008 SP2、Microsoft .NET Framework 4.5 和 Microsoft BizTalk Server。
用來建置元件和執行部署程式的電腦需要 Microsoft Visual Studio。
執行範例的電腦需要 WCF 配接器和 WCF 管理工具。 這些是安裝 Microsoft BizTalk Server期間安裝的選項。
在您用來執行系統管理工作的電腦上,您必須以屬於 BizTalk Server Administrators 群組成員的使用者帳戶身分執行,以在 BizTalk Server 管理主控台內設定BizTalk Server應用程式設定。 此使用者帳戶也必須是本機 Administrators 群組的成員,才能部署應用程式、管理主機實例,以及其他可能需要的工作。
在任何需要 WCF 功能的電腦上,完成 的 WCF 範例 https://go.microsoft.com/fwlink/?LinkId=135510 的一次性安裝程式。
在執行範例並將系結或 .msi 檔案匯入BizTalk Server的電腦上,請確定主機不是受信任的主機,否則匯入將會失敗。
在執行範例的電腦上,確定已安裝 Active Directory 憑證服務。
您必須下載逐步解說程式碼,並將其解壓縮到您的電腦。 本逐步解說是整個 WCF 配接器逐步解說套件的一部分。 您可以從 BizTalk Server 開發人員中心下載WCFAdapterWalkthroughs.exe檔案https://go.microsoft.com/fwlink/?LinkId=194140 。
建立此逐步解說的憑證
在本節中,您將要求服務和用戶端憑證、發行憑證,並將其安裝到適當的存放區。 Active Directory 憑證服務可用來建立具有受信任憑證鏈結的憑證。 如果您未遵照必要條件的要求安裝 Active Directory 憑證服務,請將 Active Directory 憑證服務安裝在您的電腦上。 如果已安裝,請移至步驟 2。
按一下 [開始]、指向 [系統管理工具],然後按一下 [伺服器管理員]。
在[伺服器管理員]節點底下,按一下 [新增],然後按一下 [角色]。
這會顯示 [新增角色精靈] 的 [開始之前]對話方塊。 按一下 [下一步]。
在 [ 選取伺服器角色 ] 頁面上,選取 [ Active Directory 憑證服務],按 [ 下一步],然後依照畫面上的指示完成安裝。
建立服務驗證的憑證要求,如下所示:
在 Internet Explorer 中,流覽網站
http://localhost/certsrv
。 在 [歡迎使用] 頁面上,按一下 [要求憑證],然後按一下 [要求憑證] 頁面上的 [進階憑證要求]。注意
使用 Windows Server 2008 SP2 作為憑證授權單位單位,並從 Windows Server 2008 SP2 電腦要求憑證要求時,您可能會收到「 若要完成憑證註冊,必須將 CA 的網站設定為使用 HTTPS 驗證」錯誤。 如果發生此錯誤,則必須使用 Web 憑證 (SSL) 來設定註冊網站。 如需完成此工作的詳細資訊,請參閱下列連結:
在 [ 進階憑證要求 ] 頁面上,按一下 [ 建立],並將要求提交至此 CA。
在 [進階憑證要求] 頁面上,輸入
localhost
[名稱] 文字方塊中,從 [需要憑證的類型] 下拉式清單中選取 [伺服器驗證憑證],然後按一下 [提交]。
建立用戶端驗證的憑證要求,如下所示:
在 Internet Explorer 中,流覽網站
http://localhost/certsrv
。 在 [歡迎使用] 頁面上,按一下 [要求憑證],然後按一下 [要求憑證] 頁面上的 [進階憑證要求]。在 [ 進階憑證要求 ] 頁面上,按一下 [ 建立],並將要求提交至此 CA。
在 [進階憑證要求] 頁面上,輸入
contoso
[名稱] 文字方塊中,從 [需要憑證的類型] 下拉式清單中選取[用戶端驗證憑證],然後按一下 [提交]。
注意
如果您在網域控制站以外的電腦上執行BizTalk Server,則會使用用戶端驗證憑證。 這會在配接器的屬性對話方塊中設定。
使用 [憑證授權單位] 管理主控台來發出憑證,如下所示:
按一下 [開始],指向 [ 系統管理工具],然後按一下 [ 憑證授權單位單位]。
在 [憑證授權單位單位 ] 管理主控台中,展開憑證授權單位單位的名稱,然後按兩下 [擱置要求]。
在 憑證授權單位單位 管理主控台的右窗格中,以滑鼠右鍵按一下服務驗證憑證的要求,指向 [ 所有工作],然後按一下 [ 問題]。
在 憑證授權單位單位 管理主控台的右窗格中,以滑鼠右鍵按一下用戶端驗證憑證的要求,指向 [ 所有工作],然後按一下 [ 問題]。
關閉 憑證授權單位單位 管理主控台。
在電腦上安裝該發出憑證,如下所示:
在 Internet Explorer 中,流覽網站
http://localhost/certsrv
。在 [ 歡迎使用 ] 頁面上,按一下 [ 檢視擱置憑證要求的狀態]。
在 [ 檢視擱置憑證要求的狀態 ] 頁面上,按一下伺服器驗證憑證。
在 [ 憑證發行] 頁面上,按一下 [安裝此憑證]。
在 Internet Explorer 中,流覽網站
http://localhost/certsrv
。在 [ 歡迎使用 ] 頁面上,按一下 [ 檢視擱置憑證要求的狀態]。
在 [ 檢視擱置憑證要求的狀態 ] 頁面上,按一下用戶端驗證憑證。
在 [ 憑證發行] 頁面上,按一下 [安裝此憑證]。
確定發出的憑證已正確安裝,如下所示:
開啟 Microsoft Management Console (MMC)。 若要這樣做,請按一下 [ 開始],按一下 [ 執行],輸入
mmc
,然後按一下 [ 確定]。在 MMC 的 [檔案] 功能表上,按一下 [新增/移除嵌入式管理單元]。
在 [新增/移除嵌入式管理單元] 對話方塊中,按一下 [新增]。
在 [新增獨立嵌入式管理單元] 對話方塊中,從[可用的獨立嵌入式管理單元] 清單中選取 [憑證],然後按一下 [新增]。
在 [ 憑證嵌入式管理單元] 對話方塊中,選取 [ 我的使用者帳戶 ] 選項,然後按一下 [ 完成]。
關閉所有開啟的對話方塊。
在 MMC 的 [主控台根] 視窗中,依序展開 [ 憑證 - 目前使用者]、[ 個人]、[憑證] 和 [ 憑證],然後確認會顯示您在上一個步驟中安裝的憑證。
為此逐步解說建立 BizTalk 應用程式
按一下[開始],指向[所有程式],指向[Microsoft BizTalk Server 20xx],然後按一下[BizTalk Server管理]。
在 BizTalk Server 管理主控台中,展開[BizTalk 群組],以滑鼠右鍵按一下 [應用程式],指向 [新增],然後按一下 [應用程式]。
在 [ 應用程式屬性 ] 對話方塊的 [ 一般 ] 索引標籤上,輸入
WcfMessageSecurity
,然後按一下 [ 確定]。使用 WCF-NetTcp 配接器建立 BizTalk 應用程式的接收位置,如下所示:
在 BizTalk Server 管理主控台中,展開[WcfMessageSecurity],以滑鼠右鍵按一下 [接收埠],指向 [新增],然後按一下[單向接收埠]。
在 [ 接收埠屬性 ] 對話方塊的 [ 名稱 ] 文字方塊中,輸入
WcfMessageSecurity.OrderRequest.Receive
,然後按一下 [ 確定]。 此接收埠的名稱絕對任意,但此名稱合理。在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下 [接收位置],按一下 [新增],然後按一下[單向接收位置]。 WCF 用戶端會將 WCF 訊息傳送至此接收位置。 選取 WcfMessageSecurity.OrderRequest.Receive recive 埠,然後按一下 [ 確定]。
在 [ 接收位置屬性 ] 對話方塊的 [ 名稱 ] 文字方塊中,輸入
WcfMessageSecurity.OrderRequest.Receive.NetTcp
。 此接收位置的名稱絕對是任意的,但此名稱合理。在 [接收位置屬性]對話方塊的 [類型] 旁的 [傳輸] 區段中,從下拉式清單中選取[WCF-NetTcp],然後按一下 [設定]。
在 [WCF-NetTcp 傳輸屬性 ] 對話方塊的 [ 一般 ] 索引標籤的 [ 位址 (URI) ] 文字方塊中,輸入
net.tcp://localhost/WcfMessageSecurity
。在[WCF-NetTcp 傳輸內容]對話方塊的 [安全性] 索引標籤上,從 [安全性模式] 下拉式清單中選取 [訊息],然後從 [訊息用戶端認證類型] 下拉式清單中選取 [憑證]。 這會設定 WCF-NetTcp 配接器以使用訊息安全性模式。
將服務憑證設定為與訊息安全性模式搭配使用。 在 [WCF-NetTcp 傳輸內容] 對話方塊的 [ 服務認證 ] 區段中,按一下 [ 流覽]。 在 [ 選取服務憑證 ] 對話方塊中,選取您在上一個程式中安裝的伺服器驗證憑證,然後按一下 [ 確定 ] 以關閉對話方塊並儲存變更。
關閉所有開啟的對話方塊。
注意
若要使用 WCF 接收配接器驗證用戶端憑證,用戶端憑證的 CA 憑證鏈結必須安裝在執行 WCF 介面卡主機實例之電腦的受信任根憑證授權單位憑證存放區中。 因為此逐步解說假設憑證服務、WCF 用戶端和 WCF 配接器都安裝在同一部電腦上,所以您不需要將 CA 憑證鏈結安裝在電腦上。
建立 BizTalk 應用程式的 FILE 傳送埠。 這是代表 WCF 服務的協調流程將傳送訂單要求輸出訊息的位置。
在 [BizTalk Server管理主控台] 中,展開[WcfMessageSecurity],以滑鼠右鍵按一下 [傳送埠],指向 [新增],然後按一下 [靜態單向傳送埠]。
在 [ 傳送埠屬性] 對話方塊的 [ 一般 ] 索引標籤的 [ 名稱 ] 文字方塊中,輸入
WcfMessageSecurity.OrderRequest.Send.FILE
。在 [傳送埠屬性] 對話方塊的 [類型] 旁的 [傳輸] 區段中,從下拉式清單中選取[檔案],然後按一下 [設定]。
在 [ 檔案傳輸內容] 對話方塊的 [ 一般 ] 索引標籤上,輸入
C:\WCFMessageSecurity\OrderRequestOut
[目的地資料夾 ] 文字方塊中,然後按一下 [ 確定]。在 [傳送埠屬性]對話方塊的 [篩選] 索引標籤上,選取[BTS]。[屬性] 欄位的 ReceivePortName,輸入
WcfMessageSecurity.OrderRequest.Receive
[值] 欄位,然後按一下 [確定]。 此篩選運算式會將來自用戶端的傳入 WCF 訊息路由傳送至 WcfMessageSecurity.OrderRequest.Receive 接收 埠至此傳送埠。
針對 BizTalk 應用程式測試 WCF 用戶端
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下[WcfMessageSecurity],然後按一下 [啟動]。 在 [ 開始 ] 對話方塊中,按一下 [開始]。
在BizTalk Server管理主控台中,依序展開 [平臺設定]、[主機實例]、以滑鼠右鍵按一下[BizTalkServerApplication] 或其他適當的主機實例,然後按一下 [重新開機]。
針對本逐步解說的工作資料夾,建立名為 C:\WCFMessageSecurity 的資料夾。 將逐步解說檔案解壓縮至此資料夾。
在 Visual Studio 中,開啟C:\WCFMessageSecurity 資料夾中的 WcfMessageSecurity.sln檔案。
在 Visual Studio 的 方案總管 中,展開[WcfClient],然後開啟Program.cs以檢閱。
用戶端會將訊息傳送至您在上一個程式中建立的 WCF-NetTcp 接收位置。
用戶端會使用 NetTcpBinding建立通道,然後將系結設定為使用用戶端認證類型的憑證。
用戶端會設定端點行為,以使用您在先前程式中安裝的用戶端驗證憑證來進行用戶端驗證。
類別 Program會實作IClientMessageInspector和IEndpointBehavior介面,以在命令提示字元顯示來自此用戶端的傳出 WCF 訊息。
在 Visual Studio 的 方案總管 中,以滑鼠右鍵按一下WcfMessageSecurity解決方案,然後按一下 [重建]。
在 Visual Studio 的 [ 偵 錯] 功能表上,按一下 [ 啟動但不 偵錯] 以執行 WcfClient,將訊息傳送至 WCF-NetTcp 接收位置。 出現的命令提示字元會顯示執行結果。
在命令提示字元中,檢視訂單要求訊息。 請注意 OrderId 欄位和訊息的結構。
在命令提示字元中,移至
C:\WCFMessageSecurity\OrderRequestOut
資料夾,然後確定 WCF 用戶端傳送的訂單要求訊息隨即出現。關閉命令提示字元。