首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 Web 服務提供者安全性架構解析(一):核心概念與威脅模型

     編輯:DB2 教學

IBM DB2 Web 服務提供者(WORF,Web 服務物件執行架構)讓開發人員以 XML 定義資料庫操作(SELECT、INSERT/UPDATE/DELETE、預存程序、XML Extender 操作),自動發布為 Web 服務。本文深入剖析其安全性架構,說明如何管控對這些可存取資料庫核心資料操作的存取權限。

Web 服務基礎回顧

Web 服務採訊息導向通訊架構,具高度互通性與擴充性。訊息以 XML 格式交換,透過 SOAP(簡單物件存取協定)封裝:

  • SOAP Header:攜帶中繼資料(交易 ID、加密金鑰等)
  • SOAP Body:承載實際業務資料(訂單、報價單等)

服務介面由 WSDL(Web 服務描述語言)定義,類似 C 語言標頭檔,描述支援的操作、輸入輸出參數與自訂型別。開發工具(WebSphere Studio、Visual Studio .NET)可自動產生 SOAP 請求/解析回應程式碼。傳輸層通常採 HTTP,亦可使用 WebSphere MQ 等替代方案。

DB2 Web 服務提供者運作機制

DADX(文件存取定義擴充)檔案範例:

<?xml version="1.0" encoding="UTF-8"?>
<dadx xmlns:xsd="https://www.w3.org/2001/XMLSchema">
  <operation name="listDept">
    <documentation>List contents of DEPARTMENT table.</documentation>
    <selection>SELECT * FROM DEPARTMENT WHERE deptno=:deptno</selection>
  </operation>
</dadx>

執行期自動完成:

  1. 由 DADX 產生 WSDL
  2. 建立瀏覽器測試環境
  3. 以 DADX 作為 Web 服務實作,執行 SQL 並將結果格式化為 XML

開發流程:建立 DADX → 部署 Web 應用 → 存取測試環境(如 https://localhost:9080/services/sample/list.dadx/TEST) → 修改 DADX 重測。無需撰寫 Java/EJB 程式碼即可完成 Web 服務開發。

URL 結構與群組概念

測試環境 URL 範例:https://host:port/services/mydatabase/list.dadx/TEST

  • services:Web 應用程式名稱/上下文根
  • mydatabase:群組名稱,作為多個 DADX 檔案的容器,共享資料庫連線用戶等配置
  • list.dadx:具體 DADX 檔案

安全性三大支柱

面向說明資料庫對應概念
身分識別/認證宣告身分並提供憑證(密碼/安全權杖)CONNECT TO sample USER dirk USING password
授權允許/拒絕特定操作GRANT SELECT, INSERT ON CALENDAR TO USER PHIL
完整性/機密性防竄改/防竊聽(加密傳輸)SSL/TLS、資料行加密

傳輸層 vs 訊息層安全性

傳輸層安全性:仰賴傳輸協定(如 HTTPS)提供加密。若切換至非加密傳輸,訊息即暴露。本文著重此類配置。

訊息層安全性 (WS-Security):訊息本身攜帶安全元素(使用者名稱、簽章、加密、安全權杖),可獨立於傳輸層,支援部分加密(如僅加密信用卡號)、多重認證機制。WS-Security 為核心標準,上層延伸 WS-Policy、WS-Trust、WS-SecureConversation 等。

WS-Security 路線圖

WebSphere 實作關鍵挑戰

  1. 認證機制:採 HTTP Basic 認證,要求 SOAP Header 攜帶帳密
  2. 授權模型:利用 J2EE URL 安全性限制,管控特定角色存取特定 DADX/群組
  3. 機密性:強制 HTTPS,保證傳輸加密與完整性
  4. 用戶映射:WebSphere 認證用戶 ≠ 資料庫執行用戶。解決方案:在群組層級指定資料庫用戶帳密,執行該群組內所有 SQL;需區分權限時建立多群組(如會計群組、工程群組)

前置準備與環境建置

  1. 從 sqllib/samples/java/websphere 解壓 dxxworf.zip 至 c:\worf
  2. 使用 Application Server Toolkit (ASTK) 匯入範例 WAR 檔(services.war)
  3. 建立新 Web 應用 SecureDADX,遷移至 J2EE 1.3 規範以支援 WebSphere 5 DataSource
匯入範例 WAR 檔
指定 WAR 檔位置
命名 Web 應用 SecureDADX
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved