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

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