Sun Java System Application Server 9.1 管理指南

配置 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" 

或 

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:Signaturexenc:EncryptedKey 包含用於加密 SOAP 訊息內文的金鑰。此金鑰在收信人的公開金鑰中加密。

auth-source="content" 

auth-recipient="after-content" 

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

auth-recipient="before-content" 

或 

auth-recipient="after-content" 

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

未指定策略。 

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

配置其他安全性功能

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

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

  2. 配置 JCE 提供者中討論了如何配置 JCE 提供者。

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

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

完成之後

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

配置 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/javase_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。