Web Services 以標準技術實現跨平台、跨語言互操作,成為 SOA 首選。隨著應用普及,安全與互操作性愈發關鍵。WS-I 組織制定 Basic Security Profile 規範互操作基準。WebSphere Application Server (WAS) V7.0 完整支援 WS-I Basic Security Profile 1.0,大部分支援 1.1,是標準支援最全面的應用伺服器之一。
本文以 WAS 內建 JAX-WS 範例為基礎,示範如何配置 WS-SecureConversation 安全策略集,實現 WAS V7.0 與 Microsoft WCF 3.0 間的安全會話互操作。
mmc.exe → 新增「憑證」嵌入式管理單元 → 「我的用戶帳戶」。alice-key.p12,密碼 sampleapp。bob-cert.der。myca.cer。若測試 JAX-WS Client 呼叫 WCF Service,另需在「電腦帳戶」存儲區匯入 bob-key.p12 (個人)、alice-cert.der (受信任的人)、myca.cer (受信任根 CA)。
本文提供現成 JKS 檔:receiver.jks (服務端,含 bob 私鑰)、sender.jks (客戶端,含 alice 私鑰)。放置於 WAS 伺服器目錄解壓即用。


TrustServiceSecurityDefault 命名為 STSInterop,勾選「取代原策略集」。STSBinding → 加入 WS-Addressing、WS-Security。AsymmetricBindingInitiatorSignatureToken0:JAAS login = wss.consume.x509;回呼處理程式 → 信任錨庫 → 新建 STSTrustAnchor,外部 keystore 指向 receiver.jks,類型 JKS,密碼 sampleapp。request:app_signparts → 命名 req-sign-msg-part → 加入轉換演算法 https://www.w3.org/2001/10/xml-exc-c14n# → 加入簽名金鑰資訊 req-sign-keyinfo。AsymmetricBindingRecipientEncryptionToken0:JAAS login = wss.consume.x509;回呼處理程式 → 自訂 keystore 同指向 receiver.jks,金鑰名稱 cn=bob,ou=myou,o=myco,別名 bob (用於解密 alice 加密訊息)。request:app_encparts → 命名 req-enc-msg-part → 加入金鑰資訊 req-enc-keyinfo。









<WAS_HOME>/samples/lib/JaxWSServiceSamples/JaxWSServicesSamples.ear,勾選「部署 web service」。EchoService → 連接策略集:複製 SecureConversation 命名 SCSvcInterop → 指定綁定 SCSvcBinding (加入 WS-Addressing、WS-Security) → 配置 WS-Security 資源 (參考 bindings.xml,過程同 STS)。

開啟 WSWindowsClient.exe.config,主要設定:
EchoSOAP(customBinding) → Message Version = Soap11WSAddressing10。security。AuthenticationMode: SecureConversation
Default Algorithm: Basic128Rsa15
MessageSecurityVersion: WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
Require Signature Confirmation: True
SecurityHeaderLayout: Lax
AllowSerializedSigningTokenOnReply: True
AuthenticationMode: MutualCertificate
Default Algorithm: Basic128Rsa15
MessageSecurityVersion: WSSecurity10WSTrustFebruaryWSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
RequireSignatureConfirmation: False
Client-Cert-Behavior → clientCredentials:
EchoServicePort:Address 指向 WAS EchoService,BehaviorConfiguration=Client-Cert-Behavior,Identity DNS=Bob。
命令列執行 WSWindowClient.exe -e,WCF 客戶端發送 "HELLO" 至 JAX-WS Service:

WAS SystemOut.log 顯示收到訊息並回覆 "JAX-WS==>>HELLO"。若已配置反向情境 (WCF Service + JAX-WS Client) 同樣可驗證。
WAS 與 WCF 互操作關鍵在於:理解訊息交換模式 (MEPs)、正確配置策略集與綁定。本文逐步示範 WS-SecureConversation 跨平台安全會話實作,供開發者參考。