【導讀】在本文中,我們將解釋如何為 DB2 Web 服務提供者應用程序啟用安全性,這包括啟用認證、設置授權和確保消息是加密的。我們還將解釋 Web 服務用戶是如何被映射到數據庫用戶的。
設置數據庫用戶
針對完整的 DADX 文件組,配置數據庫用戶。您可以以明文形式或 base64 編碼的形式在叫做 group.propertIEs 的配置文件中輸入用戶標識和口令,來設置數據庫用戶。但是即使利用編碼,這並不提供真實的安全性,因為口令並沒有被加密。補救措施是設置 Web 服務提供者使用一個數據源(DataSource),然後在 WebSphere 中為該數據源設置用戶。該方法的另一個優點是您可以對於多個數據源使用連接池。
在下一步中,為 dxx_sample 組打開組配置文件,如圖 5 所示。您可以切換到位於窗口左中部的“Project Navigator”視圖來查看該項目中的所有文件。到該文件的路徑是“SecureDADX/Java Resources/groups.dxx_sample/group.propertIEs”。修改前面兩個配置參數為:
initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory
datasourceJNDI=jdbc/sampleDataSource
第一個參數“initialContextFactory”是在 WebSphere 中訪問 JNDI(Java 命名和目錄接口)所需要的。第二個參數“datasourceJNDI”是 JNDI 中數據源的名稱。後面,我們將在 WebSphere 中用這個名稱配置數據源。
圖 5. 修改 group.propertIEs
在下一步中,當我們利用 WebSphere 管理控制台工作時,將在 WebSphere 中完成數據源的設置。
設置授權
下面的步驟修改您的 Web 應用程序的部署描述符。單擊位於窗口左下側的 J2EE HIEarchy標簽,然後雙擊 Web 應用程序 SecureDADX,如圖 6 所示。這將打開 Web 應用程序部署描述符編輯器。單擊 Security 標簽,以編輯安全性設置。
圖 6. 打開 Web 應用程序部署描述符
下一步創建一個新的角色。角色是用戶的集合,它類似於操作系統中的組。在該示例中,我們創建一個角色 —— “DADXUser”,以包含所有允許訪問 DADX 的用戶。在一個真實的應用程序中,您可能創建諸如 “accounting”、“engineering” 和 “administrator” 的角色,然後允許它們訪問不同的 DADX 文件。
圖 7. 添加並命名一個角色
在創建角色之後,單擊編輯器中的 Security constraints 標簽。安全性約束類似於數據庫中的“GRANT”語句。不同之處在於它們處理的是 URL,而不是表、存儲過程和其他數據庫對象。我們為完整的 DADX 組創建一個安全性約束。這就是 URL 模式表示為“/db2sample/*”的原因,這是針對 dxx_sample 組中的所有 URL 的 URL 路徑(注意:在 web.XML 部署描述符文件中存在一個從 dxx_sample 到 db2sample URL 的映射)。
如果您希望以相同的約束增強整個 Web 應用程序的安全性,可以使用 URL 模式的其他選項,比如“/*”。或者,如果您希望以這個安全性約束增強一個特定 DADX 的安全性,可以使用 /db2sample/myDADX.dadx/*。您可以具有多種安全性約束,因此有可能將所有的讀操作放在一個 DADX 文件中,而將寫操作放在另一個 DADX 中,然後要求用戶在特定的角色中,以允許執行讀取或者更新操作。
接下來的三個圖展示如何添加安全性約束(圖 8),如何設置正確的 URL 和 HTTP 方法(圖 9)以及如何針對該約束允許“DADXUser”角色(圖 10)。
圖 8. 添加安全性約束
圖 9. 添加新的資源約束
圖 10. 設置已授權的角色
下一步是為我們的 Web 應用程序設置機密性。
HTTPS 通信
在“User Data Constraints”部分,您可以將類型設置為“Confidential”。這意味著所有的通信將通過 HTTPS 完成。這將確保沒有人能夠讀取通過公共網絡發送的消息。
圖 11. 設置機密性
最後一步是,每當用戶引用我們 Web 應用程序中的 Web 頁面、WSDL 和 Web 服務時,就要求用戶進行認證。
URL 認證
在 Web 應用程序部署描述符編輯器中,單擊“Pages”標簽並設置認證類型為 Basic。這意味著 Web 服務客戶機或者 Web 浏覽器需要在 HTTP 頭中提供一個用戶標識和口令。
圖 12. 設置認證
在最後這些步驟中,我們通過雙擊“DefaultEAR”打開企業應用程序部署描述符,如圖 13 所示。
圖 13. 打開應用程序部署描述符
在 EAR 部署描述符編輯器中,我們首先從 Web 應用程序或者它所包含的 war 文件中“收集”安全角色(圖 14)。然後我們通過在角色列表中選擇“DADXUser”來增加一個用戶到該角色(圖 15),然後在“Users/Groups”之下單擊“Add”按鈕。還可能通過這種方式將一組用戶加入到一個角色中。注意,如果該 EAR 被部署到多個機器上,其中用戶並不一定是相同的,您仍然可以在部署時改變角色到用戶或組的映射。
圖 14. 收集角色
圖 15. 向角色添加用戶
我們已經在 ASTK 中完成了 EAR 設置。剩下的一個步驟就是保存 EAR 部署描述符,以及為在 WebSphere中進行部署而將該 EAR 文件導出到文件系統。
圖 16. 導出 EAR 文件
圖 17. 指定 EAR 文件名
應用程序設置已經基本完成了。我們還需要在 WebSphere 中配置安全性,部署我們的應用程序,然後測試它。