Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南

第 10 章 配置訊息安全性

本章說明如何在 Application Server 中為 Web 服務配置訊息層安全性。本章包含以下主題:

本章中的某些內容假設您對安全性和 Web 服務概念已有基本的瞭解。若要瞭解有關這些概念的更多資訊,請在開始閱讀本章之前先仔細閱讀詳細資訊中列出的資源。

關於訊息安全性

訊息安全性概況

訊息安全性中,安全性資訊會插入到訊息中,以使其透過網路層傳輸並附帶訊息到達訊息目標。訊息安全性與傳輸層安全性 (在「J2EE 1.4 Tutorial」中的「Security」一章中論述) 不同,因為訊息安全性可用於將訊息保護從訊息傳輸中分離開,從而使訊息在傳輸後仍保持受保護狀態。

Web 服務安全性:SOAP 訊息安全性 (WS-Security) 為互通 Web 服務安全性的國際標準,是由 Web 服務技術的所有主要提供者 (包括 Sun Microsystems) 在 OASIS 中協作開發的。WS-Security 是一種訊息安全性機制,它使用 XML 加密和 XML 數位簽名來確保經由 SOAP 傳送的 Web 服務訊息的安全。WS-Security 規格定義了多種安全性記號 (包括 X.509 證書、SAML 指定和使用者名稱/密碼記號) 的使用,以認證和加密 SOAP Web 服務訊息。

您可透過 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security -1.0.pdf 檢視 WS-Security 規格。

瞭解 Application Server 中的訊息安全性

Application Server 在其 Web 服務用戶端和伺服器端容器中提供對 WS-Security 標準的整合式支援。整合此功能後,Web 服務安全性可由代表應用程式之 Application Server 的容器來強制執行,並且可以用於保護任何 Web 服務應用程式,無需變更應用程式的實作。Application Server 透過提供可將 SOAP 層訊息安全性提供者和訊息保護策略連結到容器和容器中部署的應用程式之功能,來達到此效果。

指定訊息安全性職責

在 Application Server 中,系統管理員應用程式部署人員角色應主要負責配置訊息安全性。儘管在通常情況下,其他兩個角色之一在不涉及到開發者的條件下就可以確保現有應用程式的安全,且無需變更其實作,但在某些情況下,應用程式開發人員可能也會發揮作用。以下小節定義了各種角色的職責:

系統管理員

系統管理員負責:

系統管理員使用 管理主控台 來管理伺服器安全性設定,並使用指令行工具來管理憑證資料庫。在 Platform Edition 中,憑證和私密金鑰均儲存在金鑰庫中,並透過 keytool 進行管理。Standard Edition 和 Enterprise Edition 將憑證和私密金鑰儲存在 NSS 資料庫中,並使用 certutil 對其進行管理。本文件主要適用於系統管理員。如需有關訊息安全性作業的簡介,請參閱配置 Application Server 以實現訊息安全性

應用程式部署人員

應用程式部署人員負責:

Developers’ Guide」中的「Securing Applications」一章將論述這些安全性作業。如需有關指向該章的連結,請參閱詳細資訊

應用程式開發人員

應用程式開發者可以啟用訊息安全性,但並不是必須要這樣做。訊息安全性可以由系統管理員設定,以便確保所有 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 以實現訊息安全性中也論述了這些概念。

確保 Web 服務的安全

透過將 SOAP 層訊息安全性提供者和訊息保護策略連結到部署有應用程式的容器或連結到應用程式提供的 Web 服務端點,來確保在 Application Server 中部署的 Web 服務的安全。透過將 SOAP 層訊息安全性提供者和訊息保護策略連結到用戶端容器或連結到由用戶端應用程式宣告的可攜式服務參照,從而在 Application Server 的用戶端容器中配置 SOAP 層訊息安全性功能。

安裝 Application Server 後,將在 Application Server 的用戶端和伺服器端容器中配置 SOAP 層訊息安全性提供者,其中這些提供者可由容器或者由容器中部署的個別應用程式或用戶端進行連結使用。在安裝程序中,這些提供者配置簡單的訊息保護策略,即如果連結到容器或者連結到容器中的應用程式或用戶端,則將導致所有請求和回應訊息中內容的源均由 XML 數位簽名進行認證。

可以採用 Application Server 的管理介面,從而連結現有提供者以供 Application Server 的伺服器端容器使用,修改由提供者強制執行的訊息保護策略,或使用替代的訊息保護策略來建立新的提供者配置。有關安全性的 管理主控台 作業中定義了這些作業。您可以在應用程式用戶端容器的 SOAP 訊息層安全性配置上執行類似的管理作業 (如啟用應用程式用戶端的訊息安全性中所定義)。

依預設,Application Server 中的訊息層安全性處於停用狀態。若要配置 Application Server 的訊息層安全性,請執行配置 Application Server 以實現訊息安全性中列出的步驟。如果您要將 Web 服務安全性用於保護在 Application Server 上部署的所有 Web 服務應用程式,請執行啟用訊息安全性的提供者中的步驟。

完成以上步驟 (可能需要重新啟動 Application Server) 後,Web 服務安全性將套用於在 Application Server 上部署的所有 Web 服務應用程式。

配置特定於應用程式的 Web 服務安全性

透過在應用程式的特定於 Sun 的部署描述元中定義 message-security-binding 元素,來配置特定於應用程式的 Web 服務安全性功能 (在應用程式組譯時)。這些 message-security-binding 元素用於將特定提供者或訊息保護策略與 Web 服務端點或服務參照相關聯,並符合要求以使其套用到相應端點或參照的服務的特定連接埠或方法。

如需有關針對各應用程式定義訊息保護策略的更多資訊,請參閱「Developers’ Guide」中的「Securing Applications」一章。詳細資訊包含指向該章的連結。

確保範例應用程式的安全

Application Server 隨附名為 xms 的範例應用程式。xms 應用程式具有簡單的 Web 服務功能,可由 J2EE EJB 端點和 Java Servlet 端點共同實作。這兩個端點共用同一個服務端點介面。服務端點介面定義了單一作業 (sayHello),此作業可取得字串引數,並傳回由呼叫引數加前置的 Hello 所組成的 String

xms 範例應用程式用於說明如何使用 Application Server 的 WS-Security 功能來確保現有 Web 服務應用程式的安全。範例隨附的指令說明了如何啟用 Application Server 的 WS-Security 功能,以將其用於確保 xms 應用程式的安全。範例還說明了 WS-Security 功能與應用程式的直接連結 (如配置特定於應用程式的 Web 服務安全性中所述)。

xms 範例應用程式安裝在以下目錄中:install-dir/samples/webservices/security/ejb/apps/xms/

如需有關編譯、封裝和執行 xms 範例應用程式的資訊,請參閱「Developers’ Guide」中的「Securing Applications」一章。

配置 Application Server 以實現訊息安全性

請求策略配置和回應策略配置的動作

下表列出了訊息保護策略配置,以及由該配置的 WS-Security SOAP 訊息安全性提供者所執行的最終訊息安全性作業。

表 10–1 訊息保護策略與 WS-Security SOAP 訊息安全性作業對映

訊息保護策略 

最終的 WS-Security SOAP 訊息保護作業 

auth-source="sender" 

此訊息包含 wsse:Security 標頭,此標頭包含 wsse:UsernameToken (帶有密碼)。

auth-source="content" 

對 SOAP 訊息內文的內容進行簽名。此訊息包含 wsse:Security 標頭,此標頭包含以 ds:Signature.

auth-source="sender" 

auth-recipient="before-content" 

OR 

auth-recipient="after-content" 

SOAP 訊息內文的內容已加密,並由最終的 xend:EncryptedData 替代。此訊息包含 wsse:Security 標頭,此標頭包含 wsse:UsernameToken (帶有密碼) 和 xenc:EncryptedKeyxenc:EncryptedKey 包含用於加密 SOAP 訊息內文的金鑰。此金鑰在收信人的公開金鑰中加密。

auth-source="content" 

auth-recipient="before-content" 

SOAP 訊息內文的內容已加密,並由最終的 xend:EncryptedData 替代。xenc:EncryptedData 已簽名。此訊息包含 wsse:Security 標頭,此標頭包含 xenc:EncryptedKeyds:Signature. xenc:EncryptedKey 包含用於加密 SOAP 訊息內文的金鑰。此金鑰在收信人的公開金鑰中加密。

auth-source="content" 

auth-recipient="after-content" 

SOAP 訊息內文的內容已簽名和加密,並由最終的 xend:EncryptedData 替代。此訊息包含 wsse:Security 標頭,此標頭包含 xenc:EncryptedKeyds:Signaturexenc:EncryptedKey 包含用於加密 SOAP 訊息內文的金鑰。此金鑰在收信人的公開金鑰中加密。

auth-recipient="before-content" 

OR 

auth-recipient="after-content" 

SOAP 訊息內文的內容已加密,並由最終的 xend:EncryptedData 替代。此訊息包含 wsse:Security 標頭,此標頭包含 xenc:EncryptedKeyxenc:EncryptedKey 包含用於加密 SOAP 訊息內文的金鑰。此金鑰在收信人的公開金鑰中加密。

未指定策略。 

模組未執行任何安全性作業。 

Procedure配置其他安全性功能

Application Server 使用 SOAP 處理層中整合的訊息安全性提供者來實作訊息安全性。訊息安全性提供者取決於 Application Server 的其他安全性功能。

  1. 如果使用的 Java SDK 版本早於 1.5.0,而且使用了加密技術,請配置 JCE 提供者。

    配置 JCE 提供者中論述了如何配置 JCE 提供者。

  2. 如果使用了使用者名稱記號,請在必要時配置使用者資料庫。使用使用者名稱/密碼記號時,必須配置適當的範圍,並為該範圍配置適當的使用者資料庫。

    編輯範圍中論述了如何配置使用者資料庫。

  3. 管理證書和私密金鑰 (如有必要)。

    關於證書檔案中論述了如何管理憑證和私密金鑰。

接下來的步驟

如果已將 Application Server 的功能配置為供訊息安全性提供者使用,則可能會啟用隨 Application Server 一起安裝的提供者 (如啟用訊息安全性的提供者中所述)。

Procedure配置 JCE 提供者

J2SE 1.4.x 中包含的 Java 加密擴展 (JCE) 提供者不支援 RSA 加密。由於由 WS-Security 定義的 XML 加密通常是基於 RSA 加密,因此,若要使用 WS-Security 來加密 SOAP 訊息,您必須下載並安裝支援 RSA 加密的 JCE 提供者。


備註 –

RSA 是 RSA Data Security, Inc. 開發的公開金鑰加密技術。RSA 的首字母縮略分別代表該技術的三位發明者:Rivest、Shamir 和 Adelman。


如果您是在 Java SDK 1.5 版中執行 Application Server,則 JCE 提供者已進行正確配置。如果您是在 Java SDK 1.4.x 版中執行 Application Server,請執行以下步驟,以靜態方式將 JCE 提供者增加為 JDK 環境的一部分:

  1. 下載並安裝 JCE 提供者 JAR (Java 歸檔) 檔案。

    透過以下 URL 可以獲得支援 RSA 加密的 JCE 提供者之清單:http://java.sun.com/products/jce/jce14_providers.html.

  2. 將 JCE 提供者 JAR 檔案複製到 java-home/jre/lib/ext/

  3. 停止 Application Server。

    如果未停止 Application Server 而後來又在該程序中將其重新啟動,則 Application Server 將無法識別 JCE 提供者。

  4. 在任何一種文字編輯器中編輯 java-home/jre/lib/security/java.security 特性檔案。將剛下載的 JCE 提供者增加至此檔案。

    java.security 檔案包含用於增加該提供者的詳細說明。通常,您需要在具有類似特性的某個位置處增加一行,其格式如下:


    security.provider.n=provider-class-name
    

    在此範例中,n 是 Application Server 計算安全性提供者時所使用的喜好設定順序。將剛才增加的 JCE 提供者的 n 設定為 2

    例如,如果下載的是「The Legion of the Bouncy Castle JCE」提供者,則應增加以下行。


    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider

    確定將 Sun 安全性提供者保持在最高的喜好設定順序,其值為 1。


    security.provider.1=sun.security.provider.Sun

    將其他安全性提供者的層級調低,從而使每個層級上只有一個安全性提供者。

    以下是提供必要 JCE 提供者並將現有提供者保持在正確位置的 java.security 檔案範例。


    security.provider.1=sun.security.provider.Sun
    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.rsajca.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
  5. 儲存並關閉檔案。

  6. 重新啟動 Application Server。

有關訊息安全性的 管理主控台 作業

為使用訊息安全性而對 Application Server 設定的大多數步驟都可以透過使用 管理主控台、asadmin 指令行工具或透過手動編輯系統檔案來完成。通常,不建議編輯系統檔案,因為它可能會做出無意識的變更而使 Application Server 無法正常工作,因此,如有可能,建議優先選擇使用 管理主控台 來配置 Application Server,然後選擇使用 asadmin 工具指令。僅在無 管理主控台 或等效的 asadmin 時,才手動編輯系統檔案。

訊息層安全性支援以 (可插接式) 認證模組的形式整合在 Application Server 及其用戶端容器中。依預設,Application Server 中的訊息層安全性處於停用狀態。以下小節提供用於啟用、建立、編輯和刪除訊息安全性配置和提供者的詳細資訊。

Procedure啟用訊息安全性的提供者

若要為在 Application Server 中部署的 Web 服務端點啟用訊息安全性,則必須指定要在伺服器端依預設使用的提供者。若要啟用訊息安全性的預設提供者,您還需要啟用由 Application Server 中部署的 Web 服務之用戶端所使用的提供者。啟用應用程式用戶端的訊息安全性中論述了有關啟用用戶端使用的提供者之資訊。

若要啟用源自已部署端點的 Web 服務呼叫之訊息安全性,您必須指定預設用戶端提供者。如果已為 Application Server 啟用了預設用戶端提供者,則您必須確保在 Application Server 中部署的端點所呼叫的所有服務均配置為與訊息層安全性相容。

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 [server-config] 節點。

    • 若要配置所有實例的預設設定,請選取 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 展開 [訊息安全性] 節點。

  5. 選取 [SOAP] 節點。

  6. 選取 [訊息安全性] 標籤。

  7. 在 [編輯訊息安全性配置] 頁面中,為尚未連結特定提供者的所有應用程式,指定一個要用於伺服器端的提供者和一個要用於用戶端的提供者。

    透過修改以下選擇性特性來完成此操作:

    • 預設提供者 – 用於為尚未連結特定伺服器提供者的任何應用程式識別要呼叫的伺服器提供者。

      依預設,沒有為 Application Server 選取任何提供者配置。若要識別伺服器端提供者,請選取 [ServerProvider]。選取空選項意味著不會在伺服器端 (依預設) 呼叫訊息安全性提供者。

      在該欄位中,通常應選取 [ServerProvider]。

    • 預設用戶端提供者 – 用於為尚未連結特定伺服器提供者的任何應用程式識別要呼叫的用戶端提供者。

      依預設,沒有為 Application Server 選取任何提供者配置。若要識別用戶端提供者,請選取 [ClientProvider]。選取空選項意味著不會在用戶端 (依預設) 呼叫訊息安全性提供者。

      在該欄位中,通常應選取空值。如果您要啟用預設提供者和訊息保護策略,以套用至源自部署於 Application Server 上的 Web 服務端點之 Web 服務呼叫,則應選取 [ClientProvider]。

  8. 按一下 [儲存]。

  9. 如果您已啟用用戶端或伺服器提供者,並且要修改已啟用的提供者之訊息保護策略,請參閱配置訊息安全性提供者,以取得有關修改在此步驟中所啟用的訊息安全性提供者的資訊。

等效的 asadmin 指令

Procedure配置訊息安全性提供者

通常應重新配置提供者以修改其訊息保護策略 (儘管提供者類型、實作類別和特定於提供者的配置特性可能也需要修改)。

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 [server-config] 節點。

    • 若要配置所有實例的預設設定,請選取 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 展開 [訊息安全性] 節點。

  5. 選取 [SOAP] 節點。

  6. 選取 [提供者] 標籤。

  7. 選取要編輯的訊息安全性提供者。

    Application Server 隨附 ClientProviderServerProvider

  8. 在 [編輯提供者配置] 頁面的 [提供者配置] 區段,可以修改以下特性:

    • 提供者類型 – 選取 [client]、[server] 或 [client-server],以確定是將提供者用做用戶端認證提供者、伺服器認證提供者還是兼用做此兩種提供者 (主從式提供者)。

    • 類別名稱 - 輸入提供者的 Java 實作類別。用戶端認證提供者必須實作 com.sun.enterprise.security.jauth.ClientAuthModule 介面。伺服器端提供者必須實作 com.sun.enterprise.security.jauth.ServerAuthModule 介面。一個提供者可以同時實作這兩種介面,但必須實作對應於其提供者類型的介面。

  9. 在 [建立提供者配置] 頁面的 [請求策略] 區段,根據需要輸入以下選擇性值。

    這些特性是選擇性的,但如果未進行指定,則不會對請求訊息套用任何認證。

    請求策略定義與認證提供者執行的請求處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。

    • 認證來源– 選取 [sender]、[content] 或空值 (空白選項),以定義對訊息層傳送者認證的需求 (例如使用者名稱、密碼)、內容認證 (例如數位簽名) 或不對請求訊息進行任何認證。如果指定為空值,則不需要進行請求的來源認證。

    • 認證接收者– 選取 [beforeContent] 或 [afterContent],以定義傳送者對請求訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent

    如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作

  10. 在 [建立提供者配置] 頁面的 [回應策略] 區段,根據需要輸入以下選擇性特性。

    這些特性是選擇性的,但如果未進行指定,則不會對回應訊息套用任何認證。

    回應策略定義與認證提供者執行的回應處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。

    • 認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義要套用到回應訊息的訊息層傳送者認證 (例如使用者名稱、密碼) 或內容認證 (例如數位簽名) 之需求。如果指定為空值,則不需要進行回應的來源認證。

    • 認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對回應訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent

    如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作

  11. 透過按一下 [增加特性] 按鈕增加其他特性。

    ProductName; 隨附的提供者可支援以下特性。如果使用的是其他提供者,請參閱其他提供者的文件,以獲得有關特性和有效值的更多資訊。

    • server.config – 包含伺服器配置資訊的 XML 檔案之目錄和檔案名稱。例如,domain-dir/config/wss-server-config.xml

  12. 按一下 [儲存]。

等效的 asadmin 指令

若要設定回應策略,請用 response 替代以下指令中的 request 字詞。

Procedure建立訊息安全性提供者

若要配置現有提供者,請執行配置訊息安全性提供者中的步驟。

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 [server-config] 節點。

    • 若要配置所有實例的預設設定,請選取 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 展開 [訊息安全性] 節點。

  5. 選取 [SOAP] 節點。

  6. 選取 [提供者] 標籤。

  7. 在 [提供者配置] 頁面中,按一下 [新建]。

  8. 在 [建立提供者配置] 頁面的 [提供者配置] 區段,輸入以下資訊:

    • 預設提供者 – 核取此欄位旁邊的方塊,以使尚未連結特定提供者的所有應用程式可以呼叫新的訊息安全性提供者。提供者是成為預設用戶端提供者、預設伺服器提供者還是兩者兼而有之,取決於為 [提供者類型] 選取的值。

    • 提供者類型 – 選取 [client]、[server] 或 [client-server],以確定是將提供者用做用戶端認證提供者、伺服器認證提供者還是兼用做此兩種提供者 (主從式提供者)。

    • 提供者 ID - 輸入此提供者配置的識別碼。此名稱將顯示在 [目前的提供者配置] 清單中。

    • 類別名稱 - 輸入提供者的 Java 實作類別。用戶端認證提供者必須實作 com.sun.enterprise.security.jauth.ClientAuthModule 介面。伺服器端提供者必須實作 com.sun.enterprise.security.jauth.ServerAuthModule 介面。一個提供者可以同時實作這兩種介面,但必須實作對應於其提供者類型的介面。

  9. 在 [建立提供者配置] 頁面的 [請求策略] 區段,根據需要輸入以下選擇性值。

    這些特性是選擇性的,但如果未進行指定,則不會對請求訊息套用任何認證。

    • 認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義對訊息層傳送者認證的需求 (例如使用者名稱、密碼)、內容認證 (例如數位簽名) 或不對請求訊息進行任何認證。如果指定為空值,則不需要進行請求的來源認證。

    • 認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對請求訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent

    如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作

  10. 在 [建立提供者配置] 頁面的 [回應策略] 區段,根據需要輸入以下選擇性特性。

    這些特性是選擇性的,但如果未進行指定,則不會對回應訊息套用任何認證。

    • 認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義要套用到回應訊息的訊息層傳送者認證 (例如使用者名稱、密碼) 或內容認證 (例如數位簽名) 之需求。如果指定為空值,則不需要進行回應的來源認證。

    • 認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對回應訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent

    如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作

  11. 透過按一下 [增加特性] 按鈕增加其他特性。

    ProductName; 隨附的提供者可支援以下特性。如果使用的是其他提供者,請參閱其他提供者的文件,以獲得有關特性和有效值的更多資訊。

    • server.config – 包含伺服器配置資訊的 XML 檔案之目錄和檔案名稱。例如,domain-dir/config/wss-server-config.xml

  12. 按一下 [確定] 儲存此配置,或按一下 [取消] 結束而不進行儲存。

等效的 asadmin 指令

create-message-security-provider

Procedure刪除訊息安全性配置

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 [server-config] 節點。

    • 若要配置所有實例的預設設定,請選取 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 選取 [訊息安全性] 節點。

  5. 按一下要刪除的 [訊息安全性配置] 左側的核取方塊。

  6. 按一下 [刪除]。

Procedure刪除訊息安全性提供者

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定的實例,請選取該實例的配置節點。例如,對於預設實例 server,請選取 [server-config] 節點。

    • 若要配置所有實例的預設設定,請選取 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 展開 [訊息安全性] 節點。

  5. 選取 [SOAP] 節點。

  6. 選取 [提供者] 頁面。

  7. 按一下要刪除的 [提供者配置] 左側的核取方塊。

  8. 按一下 [刪除]。

等效的 asadmin 指令

delete-message-security-provider

Procedure啟用應用程式用戶端的訊息安全性

必須配置用戶端提供者的訊息保護策略,以使其等效於將與其進行互動式操作的伺服器端提供者的訊息保護策略。在安裝 Application Server 時已配置 (但未啟用) 的提供者符合此情況。

若要啟用用戶端應用程式的訊息安全性,請修改特定於 Application Server 的應用程式用戶端容器配置。

  1. 停止所有取決於用戶端容器描述元的用戶端應用程式。

  2. 在文字編輯器中,開啟 Sun 應用程式用戶端容器描述元 (位於 domain-dir/config/sun-acc.xml) 中。

  3. default-client-provider 元素增加到檔案,以啟用應用程式用戶端的預設用戶端提供者。

    還提供了其他代碼,以顯示啟用用戶端應用程式的訊息安全性之代碼所在的位置。其他代碼在安裝中可能略有不同。請勿變更這些代碼。


    <client-container>
      <target-server name="your-host" address="your-host"
          port="your-port"/>
      <log-service file="" level="WARNING"/>
      <message-security-config auth-layer="SOAP"
          default-client-provider="ClientProvider">
        <provider-config
            class-name="com.sun.enterprise.security.jauth.ClientAuthModule"
            provider-id="ClientProvider" provider-type="client">
          <request-policy auth-source="sender"/>
          <response-policy/>
            <property name="security.config"
              value="C:/Sun/AppServer/lib/appclient/wss-client-config.xml"/>
        </provider-config>
      </message-security-config>
    </client-container>

    用戶端容器中配置的訊息安全性提供者還需要具有對私密金鑰和受信任證書的存取權。這將透過為以下系統特性 (位於應用程式用戶端啟動程序檔中) 定義適當的值來完成。

    -Djavax.net.ssl.keyStore
    -Djavax.net.ssl.trustStore

設定應用程式用戶端配置的請求策略和回應策略

請求策略和回應策略定義與認證提供者執行的請求處理和回應處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。

若要獲得訊息安全性,必須同時在伺服器和用戶端中啟用請求策略和回應策略。在用戶端和伺服器中配置策略時,請確定應用程式層級訊息連結之請求/回應保護的用戶端策略與伺服器策略相匹配。

若要設定應用程式用戶端配置的請求策略,請依循啟用應用程式用戶端的訊息安全性中的說明修改特定於 Application Server 的應用程式用戶端容器配置。在應用程式用戶端配置檔案中,增加以下所示的 request-policyresponse-policy 元素,以設定請求策略。

提供的其他代碼可用做參照。其他代碼在安裝中可能略有不同。請勿變更這些代碼。


<client-container>
  <target-server name="your-host" address="your-host"
      port="your-port"/>
  <log-service file="" level="WARNING"/>
  <message-security-config auth-layer="SOAP"
      default-client-provider="ClientProvider">
    <provider-config
        class-name="com.sun.enterprise.security.jauth.ClientAuthModule"
        provider-id="ClientProvider" provider-type="client">
      <request-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
      <response-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
       <property name="security.config"
           value="install-dir/lib/appclient/wss-client-config.xml"/>
    </provider-config>
  </message-security-config>
</client-container>

auth-source 的有效值包括 sendercontentauth-recipient 的有效值包括 before-contentafter-content請求策略配置和回應策略配置的動作中提供了用於說明這些值的各種組合結果的表。

如果不想指定請求策略或回應策略,請將該元素保留為空白,例如:


<response-policy/>

詳細資訊