本文延續前篇內容,詳細說明如何為 DB2 Web 服務提供者應用程式啟用完整安全性機制,涵蓋身分驗證、存取授權、傳輸加密,以及 Web 服務用戶到資料庫用戶的映射機制。
針對完整的 DADX 文件群組,建議透過 WebSphere 資料源管理資料庫連線,而非在 group.properties 中以明文或 Base64 儲存帳密。雖然 Base64 編碼可避免明文顯示,但無法提供真正加密保護。使用資料源不僅增強安全性,還能善用連線池提升多資料源效能。
請開啟 dxx_sample 群組的設定檔(路徑:SecureDADX/Java Resources/groups.dxx_sample/group.properties),修改以下兩個參數:
initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory
datasourceJNDI=jdbc/sampleDataSource
initialContextFactory 用於在 WebSphere 中存取 JNDI;datasourceJNDI 則指定 JNDI 中資料源的名稱,稍後將在 WebSphere 管理主控台中以此名稱配置資料源。

在 Web 應用程式部署描述符編輯器的 Security 標籤下,建立名為 DADXUser 的角色,對應所有被允許存取 DADX 的使用者。實務上可依業務劃分更細緻角色,如 accounting、engineering、administrator,並分別授權不同 DADX 檔案。

安全性限制類似資料庫的 GRANT 敘述,但針對 URL 路徑而非資料庫物件。為完整 DADX 群組建立限制時,URL 模式設為 /db2sample/*(對應 dxx_sample 群組所有 URL)。若需保護整個 Web 應用程式,可用 /*;針對單一 DADX 則用 /db2sample/myDADX.dadx/*。透過多重限制,可將讀寫操作分離至不同 DADX,並要求特定角色執行對應操作。



在 User Data Constraints 區段將傳輸類型設為 Confidential,即可強制所有通訊走 HTTPS,確保訊息在公共網路傳輸過程中不被竊聽或竄改。

在部署描述符編輯器的 Pages 標籤,將認證類型設為 Basic。這要求 Web 服務用戶端或瀏覽器在 HTTP Header 中攜帶使用者帳密,完成身分驗證。

雙擊 DefaultEAR 開啟企業應用部署描述符,先從 Web 模組「收集」安全角色,再將具體使用者或群組加入 DADXUser 角色。此映射關係可在部署至不同機器時調整,彈性因應各環境使用者登錄差異。



完成上述設定後,儲存 EAR 部署描述符並匯出 EAR 檔案至檔案系統,準備部署至 WebSphere 進行後續安全性配置與測試。

