現代企業應用架構普遍採用多層模型,用戶請求經由應用服務器、聯合服務器等中間層傳遞至後端數據庫。傳統模式下,所有請求均以單一應用程序用戶(如 APP_USER)身份通過單一連接訪問數據源,導致最終用戶身份丟失、審計困難、權限過度授予及安全瓶頸等問題。WebSphere Federation Server V9.5 引入端到端聯合可信上下文,利用聯合服務器與數據源內建的可信上下文機制,實現了在可信環境中跨層傳遞最終用戶身份,無需重複驗證,兼顧安全與性能。
WITHOUT AUTHENTICATION 選項可進一步減少驗證開銷。某保險應用部署於應用服務器,需整合遠程 DB2(人壽理賠)與 Oracle(家庭理賠)數據源。傳統模式下,所有查詢均以 APP_USER 身份執行,無法區分具體用戶操作。啟用端到端可信上下文後:
APP_USER 建立顯式可信連接完成初始化。BOB,其請求以 Bob 權限在 DB2/Oracle 執行並審計。安全管理員(SECADM)在遠程 DB2 創建可信上下文,定義聯合服務器 IP 為信任屬性,允許 PUBLIC 無驗證重用:
CREATE TRUSTED CONTEXT MY_DB2_TCX
BASED UPON CONNECTION USING SYSTEM AUTHID APP_USER
ATTRIBUTES (ADDRESS '9.44.111.222')
WITH USE FOR PUBLIC WITHOUT AUTHENTICATION
ENABLE;
配置代理驗證,允許指定用戶通過 APP_USER 代理連接:
ALTER USER MARY GRANT CONNECT THROUGH APP_USER;
ALTER USER ALICE GRANT CONNECT THROUGH APP_USER;
ALTER USER BOB GRANT CONNECT THROUGH APP_USER;
在 WebSphere Federation Server 定義信任應用服務器連接的上下文:
CREATE TRUSTED CONTEXT MY_WFS_TCX
BASED UPON CONNECTION USING SYSTEM AUTHID APP_USER
ATTRIBUTES (ADDRESS '9.44.111.111')
WITH USE FOR PUBLIC WITHOUT AUTHENTICATION
ENABLE;
創建 DRDA Wrapper 與 Server 對象訪問遠程 DB2:
CREATE WRAPPER drda;
CREATE SERVER udb1 TYPE db2/udb VERSION 9.5 WRAPPER drda
AUTHORIZATION "APP_USER" PASSWORD "secret" OPTIONS (DBNAME 'remotedb');
用戶映射策略:
USE_TRUSTED_CONTEXT 'Y',無需 REMOTE_PASSWORD:CREATE USER MAPPING FOR JOE SERVER udb1
OPTIONS (REMOTE_AUTHID 'JOESMITH', USE_TRUSTED_CONTEXT 'Y');
若本地/遠程認證均不同,則需同時指定 REMOTE_AUTHID 與 REMOTE_PASSWORD。
關鍵 API 序列:
SQLSetConnectAttr(..., SQL_ATTR_USE_TRUSTED_CONTEXT, SQL_TRUE) 啟用可信連接屬性。SQLConnect 以 APP_USER 建立入站可信連接(需密碼)。APP_USER)。SQLEndTran(COMMIT) 後,SQLSetConnectAttr(..., SQL_ATTR_TRUSTED_CONTEXT_USERID, "BOB") 切換入站用戶;後續遠程請求自動切換出站用戶為 BOB(無需密碼)。/* 切換用戶示例 */
SQLEndTran(SQL_HANDLE_DBC, hdbc1, SQL_COMMIT);
SQLSetConnectAttr(hdbc1, SQL_ATTR_TRUSTED_CONTEXT_USERID, "BOB", SQL_IS_POINTER);
SQLExecDirect(hstmt, "SELECT * FROM claims", SQL_NTS); /* 以 BOB 身份執行 */
ENABLE。CLIENT。CONNECT 權限。WITH USE FOR 子句需包含目標用戶或 PUBLIC。USE_TRUSTED_CONTEXT 映射均需 SECADM 權限。REMOTE_PASSWORD(不可為空)。WebSphere Federation Server V9.5 的端到端聯合可信上下文通過保留最終用戶身份跨層傳遞,解決了多層架構中長期存在的身份丟失、審計盲區、過度授權與單點安全風險,同時利用連接重用顯著提升吞吐量,是構建安全、高效、可審計的企業級數據訪問層的關鍵特性。
