責任鏈模式介紹
什么是責任鏈模
? ?責任鏈模式是一種行為設計模式, 允許你將請求沿著處理者鏈進行發送。 收到請求后, 每個處理者均可對請求進行處理, 或將其傳遞給鏈上的下個處理者。
責任鏈模式結構
偽代碼
基于責任鏈的開放銀行數據保護及合規實踐
合規概況介紹
? ? ?數據收集合規方面,開放銀行在提供用戶信息相關服務時,若涉及收集用戶信息將以簽署授權協議的方式獲取用戶授權;數據共享使用方面,第三方在調用獲取、使用、變更客戶信息、賬戶、資金等接口時,需先取得客戶明示同意,同時開放銀行依據最少夠用原則,采用了報文非必要字段過濾及關鍵字脫敏的方式;數據傳輸合規方面,通道層基于 TLS1.2 及以上版本安全通道進行通信,應用層支持標準國際國密算法加密,為保證與第三方之間數據傳輸的完整性與不可抵賴性,采用數字簽名技術,為合作方應用一對一頒發證書,后續通過證書來驗證第三方合法身份;數據存儲合規方面,平臺不存儲業務類數據,業務數據從后臺關聯系統獲取,技術類數據則入庫大數據平臺永久保存,對于交易日志,在完成去標識化處理后上送運維平臺展示,并依據標準脫敏規則,對郵箱、身份證號、手機號等信息進行脫敏處理。
? ? ? 開放銀行作為金融機構開放數據的載體,通過與第三方機構合作,實現了銀行與第三方間數據服務的開放共享,將銀行服務嵌入到用戶生活的方方面面。在數據的共享和流轉過程中,如何保障數據安全和用戶隱私則顯得尤為重要。為此,農業銀行開放銀行提出了一種基于責任鏈模型的開放銀行數據保護解決方案。該方案基于 ZuulFilter責任鏈模式構建了開放銀行認證授權及數據保護體系,由一系列緊密配合工作的 Filter按照預設的 FilterOrder 實現,Filter 間不直接通信,通過 RequestContext 共享狀態。
開放銀行數據保護責任鏈模型
開放銀行數據保護責任鏈模型主要包括三部分:Pre Filters、Error Filters 和 PostFilters。Error Filters 和 Post Filters 分別負責進行統一異常處理和事后流水記錄,PreFilters 是模型的重點,包含了一系列的數據處理節點,上圖重點列出了一部分。
? ?其中,報文轉換節點用于校驗合作方報文格式是否符合 HTTP 規范以及是否滿足開放銀行標準;鑒權節點用于鑒別合作方是否具有開放銀行接口訪問權限;簽名驗簽節點
? ?通過驗證合作方數字證書的有效性以確認合作方身份真實性;加解密節點在應用層面采用密鑰加密手段保護數據安全;后臺調用節點負責鏈接我行多樣的開放金融產品服務;輸出過濾節點可根據實際需求過濾掉報文中的非必要字段,保證了信息的最小集輸出原則;關鍵字脫敏節點可按預設脫敏規則對響應報文的敏感信息進行脫敏處理,保護用戶隱私;組裝響應報文節點在完成前面所有節點處理后將組裝后的響應數據共享給合作方。
? ?責任鏈模型中各個處理節點形成了先后的層級關系,但各個節點間互不影響,耦合度較低,僅通過 RequestContext 共享狀態。Pre Filters 執行過程中失敗則會由 ErrorFilters 接手處理,執行完畢后進入 Post Filters 記錄流水日志。只有鏈條上所有節點均正常執行完畢后,才會視為請求處理成功。