Application Server 在其 Web 服務用戶端和伺服器端容器中提供對 WS-Security 標準的整合式支援。整合此功能後,Web 服務安全性可由代表應用程式之 Application Server 的容器來強制執行,並且可以用於保護任何 Web 服務應用程式,無需變更應用程式的實作。Application Server 透過提供可將 SOAP 層訊息安全性提供者和訊息保護策略連結到容器和容器中部署的應用程式之功能,來達到此效果。
在 Application Server 中,系統管理員 和 應用程式部署人員 角色應負起配置訊息安全性的主要責任。儘管通常其他的角色都不需要開發者且無需變更其實作,就可以確保現有應用程式的安全,但在某些情況下,應用程式開發人員 也可以發揮作用。以下小節定義了各種角色的職責:
系統管理員負責:
在 Application Server 中配置訊息安全性提供者。
管理使用者資料庫。
管理金鑰儲存區和信任儲存區檔案。
在使用加密並執行 1.5.0 版之前的 Java SDK 時,配置 Java 加密擴展 (JCE) 提供者。
安裝範例伺服器。僅在 xms 範例應用程式用於說明如何使用訊息層 Web 服務安全性時,才執行此作業。
系統管理員使用管理主控台來管理伺服器安全性設定,並使用指令行工具來管理憑證資料庫。在 Platform Edition 中,憑證和私密金鑰均儲存在金鑰庫中,並透過 keytool 進行管理。Standard Edition 和 Enterprise Edition 將憑證和私密金鑰儲存在 NSS 資料庫中,並使用 certutil 對其進行管理。本文件主要適用於系統管理員。如需有關訊息安全性作業的簡介,請參閱配置 Application Server 以實現訊息安全性。
應用程式部署人員負責:
如果上游角色 (開發者或組譯者) 尚未指定任何所需的特定於應用程式的訊息保護策略,則 (在應用程式組譯時) 指定這些策略。
修改特定於 Sun 的部署描述元,以向 Web 服務端點和服務參照指定特定於應用程式的訊息保護策略資訊 (即 message-security-binding 元素)。
應用程式開發者可以啟用訊息安全性,但並不是必須要這樣做。訊息安全性可以由系統管理員設定,以便確保所有 Web 服務的安全;如果連結到應用程式的提供者或保護策略不同於連結到容器的提供者或保護策略,訊息安全性則由應用程式部署人員設定。
應用程式開發者或組譯者負責:
確定應用程式是否需要特定於應用程式的訊息保護策略。如果需要,則透過與應用程式部署人員交流,確保在應用程式組譯時指定所需策略。
WS-Security 規格為使用安全性記號來認證和加密 SOAP Web 服務訊息提供了可延伸機制。與 Application Server 一起安裝的 SOAP 層訊息安全性提供者可用於採用使用者名稱/密碼和 X509 憑證安全性記號,以認證和加密 SOAP Web 服務訊息。採用其他安全性記號 (包括 SAML 指定) 的其他提供者將與 Application Server 的後續發行版本一起安裝。
Application Server 使用 SOAP 訊息中的使用者名稱記號來建立訊息傳送者的認證身份。包含使用者名稱記號 (在內嵌式密碼中) 的訊息接收者透過確認傳送者是否知道使用者的秘密 (即密碼),來驗證訊息傳送者是否經過授權成為使用者 (在記號中識別)。
使用使用者名稱記號時,必須在 Application Server 中配置有效的使用者資料庫。
Application Server 使用 XML 數位簽名將認證身份連結到訊息內容。用戶端使用數位簽名來建立呼叫者身份,其方法與使用傳輸層安全性時用基本認證或 SSL 用戶端證書認證建立呼叫者身份的方法相似。訊息接收者將驗證數位簽名以認證訊息內容的來源 (可能與訊息傳送者不同)
使用數位簽名時,必須在 Application Server 中配置有效的金鑰庫和信任庫檔案。如需有關該主題的更多資訊,請參閱關於證書檔案。
加密的目的是將資料修改為只有目標讀者才能理解的形式。加密程序透過用加密元素替換原始內容來完成。與公開金鑰加密指出的那樣,可以使用加密來建立能夠閱讀訊息的一方或多方身份。
使用加密時,必須先安裝支援加密的 JCE 提供者。如需有關該主題的更多資訊,請參閱配置 JCE 提供者。
訊息保護策略是針對請求訊息處理和回應訊息處理而定義的,並根據對源和/或收信人認證的需求來進行表示。來源認證策略代表一個需求,即必須在訊息中建立已傳送訊息或已定義訊息內容的實體之身份,以使其可以由訊息收件者進行認證。接收者認證策略代表一個需求,即必須傳送訊息,以使可接收訊息的實體之身份可 由訊息傳送者建立。提供者套用特定的訊息安全性機制,以使訊息保護策略在 SOAP Web 服務訊息的上下文中實現。
請求和回應訊息保護策略是在將提供者配置到容器時定義的。特定於應用程式的訊息保護策略 (細緻程度為 Web 服務連接埠或作業) 也可以在應用程式或應用程式用戶端的特定於 Sun 的部署描述元中進行配置。在任何情況下,如果定義了訊息保護策略,則用戶端的請求和回應訊息保護策略必須與伺服器的請求和回應訊息保護策略相符 (即二者等效)。如需有關針對各應用程式定義訊息保護策略的更多資訊,請參閱「 Developers Guide」中的「Securing Applications」一章。
以下內容描述本文件中所使用的術語。配置 Application Server 以實現訊息安全性中也討論了這些概念。
認證層
認證層是必須執行認證處理的訊息層。Application Server 在 SOAP 層強制執行 Web 服務訊息安全性。
認證提供者
在 Application Server 的此發行版本中,Application Server 呼叫認證提供者來處理 SOAP 訊息層安全性。
用戶端提供者用於建立 (透過簽名或使用者名稱/密碼) 請求訊息的來源身份和/或保護 (透過加密) 請求訊息,從而使這些訊息僅可由其目標接收者檢視。用戶端提供者還可以將其容器建立為接收的回應之授權收信人 (透過成功地解密),並驗證回應中的密碼或簽名以認證與回應相關聯的源身份。在 Application Server 中配置的用戶端提供者可用來保護由做為其他服務的用戶端的伺服器端元件 (即 Servlet 和 EJB 元件) 所傳送的請求訊息和所接收的回應訊息。
伺服器端提供者用於將其容器建立為所接收請求的授權接收者 (透過成功地解密),並驗證請求中的密碼或簽名以認證與該請求相關的來源身份。伺服器端提供者還將建立 (透過簽名或使用者名稱/密碼) 回應訊息的源身份和/或保護 (透過加密) 回應訊息,以使這些訊息只能由其目標收信人檢視。伺服器端提供者僅可由伺服器端容器呼叫。
預設伺服器提供者
預設伺服器提供者用於為尚未連結特定伺服器提供者的任何應用程式識別要呼叫的伺服器提供者。預設伺服器提供者有時被稱為預設提供者。
預設用戶端提供者
預設用戶端提供者用於為尚未連結特定用戶端提供者的任何應用程式識別要呼叫的用戶端提供者。
請求策略
請求策略定義與認證提供者執行的請求處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。
回應策略
回應策略定義與認證提供者執行的回應處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。