為使用訊息安全性而對 Application Server 設定的大多數步驟都可以透過使用 管理主控台、asadmin 指令行工具或透過手動編輯系統檔案來完成。通常,不建議編輯系統檔案,因為它可能會做出無意識的變更而使 Application Server 無法正常工作,因此,如有可能,建議優先選擇使用 管理主控台 來配置 Application Server,然後選擇使用 asadmin 工具指令。僅在無 管理主控台 或等效的 asadmin 時,才手動編輯系統檔案。
訊息層安全性支援以 (可插接式) 認證模組的形式整合在 Application Server 及其用戶端容器中。依預設,Application Server 中的訊息層安全性處於停用狀態。以下小節提供用於啟用、建立、編輯和刪除訊息安全性配置和提供者的詳細資訊。
大多數情況下,在執行以上管理作業後應重新啟動 Application Server。此步驟尤其適用於作業完成後,您要將管理變更的效果套用至 Application Server 上已部署應用程式中的情況。
若要為在 Application Server 中部署的 Web 服務端點啟用訊息安全性,則必須指定要在伺服器端依預設使用的提供者。若要啟用訊息安全性的預設提供者,您還需要啟用由 Application Server 中部署的 Web 服務之用戶端所使用的提供者。啟用應用程式用戶端的訊息安全性中論述了有關啟用用戶端使用的提供者之資訊。
若要啟用源自已部署端點的 Web 服務呼叫之訊息安全性,您必須指定預設用戶端提供者。如果已為 Application Server 啟用了預設用戶端提供者,則您必須確保在 Application Server 中部署的端點所呼叫的所有服務均配置為與訊息層安全性相容。
在 管理主控台 樹形元件中,展開 [配置] 節點。
選取要配置的實例:
展開 [安全性] 節點。
展開 [訊息安全性] 節點。
選取 [SOAP] 節點。
選取 [訊息安全性] 標籤。
在 [編輯訊息安全性配置] 頁面中,為尚未連結特定提供者的所有應用程式,指定一個要用於伺服器端的提供者和一個要用於用戶端的提供者。
透過修改以下選擇性特性來完成此操作:
預設提供者 – 用於為尚未連結特定伺服器提供者的任何應用程式識別要呼叫的伺服器提供者。
依預設,沒有為 Application Server 選取任何提供者配置。若要識別伺服器端提供者,請選取 [ServerProvider]。選取空選項意味著不會在伺服器端 (依預設) 呼叫訊息安全性提供者。
在該欄位中,通常應選取 [ServerProvider]。
預設用戶端提供者 – 用於為尚未連結特定伺服器提供者的任何應用程式識別要呼叫的用戶端提供者。
依預設,沒有為 Application Server 選取任何提供者配置。若要識別用戶端提供者,請選取 [ClientProvider]。選取空選項意味著不會在用戶端 (依預設) 呼叫訊息安全性提供者。
在該欄位中,通常應選取空值。如果您要啟用預設提供者和訊息保護策略,以套用至源自部署於 Application Server 上的 Web 服務端點之 Web 服務呼叫,則應選取 [ClientProvider]。
按一下 [儲存]。
如果您已啟用用戶端或伺服器提供者,並且要修改已啟用的提供者之訊息保護策略,請參閱配置訊息安全性提供者,以取得有關修改在此步驟中所啟用的訊息安全性提供者的資訊。
若要指定預設伺服器提供者,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. default_provider=ServerProvider |
若要指定預設用戶端提供者,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. default_client_provider=ClientProvider |
通常應重新配置提供者以修改其訊息保護策略 (儘管提供者類型、實作類別和特定於提供者的配置特性可能也需要修改)。
在 管理主控台 樹形元件中,展開 [配置] 節點。
選取要配置的實例:
展開 [安全性] 節點。
展開 [訊息安全性] 節點。
選取 [SOAP] 節點。
選取 [提供者] 標籤。
選取要編輯的訊息安全性提供者。
Application Server 隨附 ClientProvider 和 ServerProvider。
在 [編輯提供者配置] 頁面的 [提供者配置] 區段,可以修改以下特性:
提供者類型 – 選取 [client]、[server] 或 [client-server],以確定是將提供者用做用戶端認證提供者、伺服器認證提供者還是兼用做此兩種提供者 (主從式提供者)。
類別名稱 - 輸入提供者的 Java 實作類別。用戶端認證提供者必須實作 com.sun.enterprise.security.jauth.ClientAuthModule 介面。伺服器端提供者必須實作 com.sun.enterprise.security.jauth.ServerAuthModule 介面。一個提供者可以同時實作這兩種介面,但必須實作對應於其提供者類型的介面。
在 [建立提供者配置] 頁面的 [請求策略] 區段,根據需要輸入以下選擇性值。
這些特性是選擇性的,但如果未進行指定,則不會對請求訊息套用任何認證。
請求策略定義與認證提供者執行的請求處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。
認證來源– 選取 [sender]、[content] 或空值 (空白選項),以定義對訊息層傳送者認證的需求 (例如使用者名稱、密碼)、內容認證 (例如數位簽名) 或不對請求訊息進行任何認證。如果指定為空值,則不需要進行請求的來源認證。
認證接收者– 選取 [beforeContent] 或 [afterContent],以定義傳送者對請求訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent。
如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作。
在 [建立提供者配置] 頁面的 [回應策略] 區段,根據需要輸入以下選擇性特性。
這些特性是選擇性的,但如果未進行指定,則不會對回應訊息套用任何認證。
回應策略定義與認證提供者執行的回應處理相關的認證策略需求。按照訊息寄件者的順序表示這些策略,從而使內容之後出現的加密請求意味著訊息收件者將在驗證簽名之前先要對訊息進行解密。
認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義要套用到回應訊息的訊息層傳送者認證 (例如使用者名稱、密碼) 或內容認證 (例如數位簽名) 之需求。如果指定為空值,則不需要進行回應的來源認證。
認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對回應訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent。
如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作。
透過按一下 [增加特性] 按鈕增加其他特性。
ProductName; 隨附的提供者可支援以下特性。如果使用的是其他提供者,請參閱其他提供者的文件,以獲得有關特性和有效值的更多資訊。
server.config – 包含伺服器配置資訊的 XML 檔案之目錄和檔案名稱。例如,domain-dir/config/wss-server-config.xml。
按一下 [儲存]。
若要設定回應策略,請用 response 替代以下指令中的 request 字詞。
若要將請求策略增加到用戶端並設定認證來源,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ClientProvider.request-policy.auth_source= sender | content |
若要將請求策略增加到伺服器並設定認證來源,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ServerProvider.request-policy.auth_source= sender | content |
若要將請求策略增加到用戶端並設定認證收信人,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ClientProvider.request-policy.auth_recipient= before-content | after-content |
若要將請求策略增加到伺服器並設定認證收信人,請使用:
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ServerProvider.request-policy.auth_recipient= before-content | after-content |
若要配置現有提供者,請執行配置訊息安全性提供者中的步驟。
在 管理主控台 樹形元件中,展開 [配置] 節點。
選取要配置的實例:
展開 [安全性] 節點。
展開 [訊息安全性] 節點。
選取 [SOAP] 節點。
選取 [提供者] 標籤。
在 [提供者配置] 頁面中,按一下 [新建]。
在 [建立提供者配置] 頁面的 [提供者配置] 區段,輸入以下資訊:
預設提供者 – 核取此欄位旁邊的方塊,以使尚未連結特定提供者的所有應用程式可以呼叫新的訊息安全性提供者。提供者是成為預設用戶端提供者、預設伺服器提供者還是兩者兼而有之,取決於為 [提供者類型] 選取的值。
提供者類型 – 選取 [client]、[server] 或 [client-server],以確定是將提供者用做用戶端認證提供者、伺服器認證提供者還是兼用做此兩種提供者 (主從式提供者)。
提供者 ID - 輸入此提供者配置的識別碼。此名稱將顯示在 [目前的提供者配置] 清單中。
類別名稱 - 輸入提供者的 Java 實作類別。用戶端認證提供者必須實作 com.sun.enterprise.security.jauth.ClientAuthModule 介面。伺服器端提供者必須實作 com.sun.enterprise.security.jauth.ServerAuthModule 介面。一個提供者可以同時實作這兩種介面,但必須實作對應於其提供者類型的介面。
在 [建立提供者配置] 頁面的 [請求策略] 區段,根據需要輸入以下選擇性值。
這些特性是選擇性的,但如果未進行指定,則不會對請求訊息套用任何認證。
認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義對訊息層傳送者認證的需求 (例如使用者名稱、密碼)、內容認證 (例如數位簽名) 或不對請求訊息進行任何認證。如果指定為空值,則不需要進行請求的來源認證。
認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對請求訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent。
如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作。
在 [建立提供者配置] 頁面的 [回應策略] 區段,根據需要輸入以下選擇性特性。
這些特性是選擇性的,但如果未進行指定,則不會對回應訊息套用任何認證。
認證來源 – 選取 [sender]、[content] 或空值 (空白選項),以定義要套用到回應訊息的訊息層傳送者認證 (例如使用者名稱、密碼) 或內容認證 (例如數位簽名) 之需求。如果指定為空值,則不需要進行回應的來源認證。
認證接收者 – 選取 [beforeContent] 或 [afterContent],以定義傳送者對回應訊息的接收者之訊息層認證的需求 (例如,透過 XML 加密)。如果不指定該值,則其為預設值 afterContent。
如需有關以下訊息保護策略所導致的由 SOAP 訊息安全性提供者執行的動作之說明,請參閱請求策略配置和回應策略配置的動作。
透過按一下 [增加特性] 按鈕增加其他特性。
ProductName; 隨附的提供者可支援以下特性。如果使用的是其他提供者,請參閱其他提供者的文件,以獲得有關特性和有效值的更多資訊。
server.config – 包含伺服器配置資訊的 XML 檔案之目錄和檔案名稱。例如,domain-dir/config/wss-server-config.xml。
按一下 [確定] 儲存此配置,或按一下 [取消] 結束而不進行儲存。
create-message-security-provider
在 管理主控台 樹形元件中,展開 [配置] 節點。
選取要配置的實例:
展開 [安全性] 節點。
選取 [訊息安全性] 節點。
按一下要刪除的 [訊息安全性配置] 左側的核取方塊。
按一下 [刪除]。
在 管理主控台 樹形元件中,展開 [配置] 節點。
選取要配置的實例:
展開 [安全性] 節點。
展開 [訊息安全性] 節點。
選取 [SOAP] 節點。
選取 [提供者] 頁面。
按一下要刪除的 [提供者配置] 左側的核取方塊。
按一下 [刪除]。
delete-message-security-provider
必須配置用戶端提供者的訊息保護策略,以使其等效於將與其進行互動式操作的伺服器端提供者的訊息保護策略。在安裝 Application Server 時已配置 (但未啟用) 的提供者符合此情況。
若要啟用用戶端應用程式的訊息安全性,請修改特定於 Application Server 的應用程式用戶端容器配置。
停止所有取決於用戶端容器描述元的用戶端應用程式。
在文字編輯器中,開啟 Sun 應用程式用戶端容器描述元 (位於 domain-dir/config/sun-acc.xml) 中。
將 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-policy 和 response-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 的有效值包括 sender 和 content。auth-recipient 的有效值包括 before-content 和 after-content。請求策略配置和回應策略配置的動作中提供了用於說明這些值的各種組合結果的表。
如果不想指定請求策略或回應策略,請將該元素保留為空白,例如:
<response-policy/> |
您可透過以下 URL 檢視 Java 2 Standard Edition 的安全性論述:http://java.sun.com/j2se/1.4.2/docs/guide/security/index.html。
您可透過以下 URL 檢視「J2EE 1.4 Tutorial」中的「Security」一章:http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html。
「Administration Guide」中的第 9 章, 配置安全性。
「Developer’s Guide」中的「Securing Applications」一章。
您可透過以下 URL 檢視「 Oasis Web Services Security: SOAP Message Security (WS-Security)」規格:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security -1.0.pdf。
您可透過以下 URL 檢視 OASIS Web Services Security Username Token Profile 1.0:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token -profile-1.0.pdf。
您可透過以下 URL 檢視 OASIS Web Services Security X.509 Certificate Token Profile 1.0:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile -1.0.pdf。
您可透過以下 URL 檢視「XML-Signature Syntax and Processing」文件:http://www.w3.org/TR/xmldsig-core/。
您可透過以下 URL 檢視「XML Encryption Syntax and Processing」文件:http://www.w3.org/TR/xmlenc-core/。