基礎計算機安全/網路安全/增強 Web 服務安全
本節討論增強 Web 服務安全的技術和方法。
WS-Policy 已由 W3C 小組標準化,並已成為事實上的標準 Web 服務策略規範。 已經提出了許多將 WS-Policy 轉換為邏輯的建議。 其中一個建議使用 OWL-DL 來提供形式語義。 使用推理機,它提供了一種機制來確定兩個策略是否相容。 使用的推理機是 Pellet,它是斯坦福大學提供的開源工具 Protégé 的標準外掛。 WS-Policy
另一種擴充套件 Web 服務安全性的方法是將 JAX-WS 規範與 JAX-WS RI 結合使用。 JAX-WS 的標準處理程式有一些限制。 例如,LogicalHandler 只提供對有效載荷的訪問,而不提供對 SOAP 標頭和作為附件在 SOAP 訊息中傳輸的二進位制資料的訪問,並且更適合 XML/HTTP 繫結。 此外,儘管 SOAPHandler 提供對整個 SOAP 訊息的訪問,但它對效能有影響,因為 SOAPMessage 基於 DOM 並嘗試將整個訊息載入到記憶體中。 另一方面,JAX-WS RI 以流式方式讀取訊息,並嘗試延遲讀取資訊以提供更好的效能。 JAX-WS 規範支援常見的 WS-I 規範,包括 WS-I 基本配置檔案、WS-I 附件配置檔案、WS-I 簡單 SOAP 繫結配置檔案 1.0 WS-Addressing - 核心、SOAP 繫結和 WSDL 繫結。 JAX-WS RI 定義了訊息抽象 - 隱藏實際資料表示,無論是從 JAXB 物件構建的訊息還是 HttpConnection 的 InputStream。 Message API 提供了多種訪問有效載荷的方式,實現可以以最佳方式實現這些方法。 JAX-WS 執行時在構建新訊息時會選擇正確的訊息表示。 此外,它還提供了一些常用的 Message Base 類實現(例如,JAXBMessage、DOMMessage、SAAJ Message 和 ProtocolSourceMessage)。 這些 Message 類中的每一個都具有特定的特徵,並且可能更實用或更適合當前情況。 隨著 RI 的新增,開發人員可以訪問靜態工廠方法來輕鬆使用 Messages API 建立訊息。 使用這種方法,他可以輕鬆地訪問和建立訊息,而不管實際的資料表示形式如何。 利用 JAX-WS 規範提供的可擴充套件的 Handler 框架和 RI 中更好的 Message 抽象,可以引入一個名為 MessageHandler 的新類處理程式來擴充套件您的 Web 服務應用程式。 MessageHandler 類似於 SOAPHandler,不同之處在於實現可以訪問 MessageHandlerContext(MessageContext 的擴充套件)。 透過 MessageHandlerContext 類,可以使用 Message API 訪問和處理訊息[2]。
[1] Vladimir Kolovski 和 Bijan Parsia,WS-Policy 及其擴充套件:將 OWL 預設值應用於 Web 服務策略。 馬里蘭大學計算機科學系,美國馬里蘭州學院公園,2008 年。
[2] JAX-WS 2.1 RI 架構文件,Sun Microsystems,2009 年。