移動化時代下的統一認證服務,除了傳統PC辦公平臺的問題之外,還需要重點考慮輕應用+微服務架構下的認證,本文將基于品高云應用支撐平臺(BingoFuse)的企業級統一認證服務,對上述問題展開討論。
本期大咖 彭鴻杰
品高云應用平臺部高級工程師,主攻JAVA技術,參與品高內部開發框架研發和品高云盤、品高統一認證服務等核心產品研發,開源框架Leap的代碼貢獻者,擁有豐富的公安、政府與大型集團的企業級PaaS開放平臺實施和落地經驗,目前擔任品高云應用支撐平臺(BingoFuse)開放平臺負責人,負責企業級統一認證服務研發和開放平臺研發和交付工作。
一、存在的問題
統一認證服務,除了實現傳統的單點登錄之外,還需要解決以下幾個重要問題:
• 雙身份:用戶與應用都需要身份認證
• 多終端:IOS,安卓,桌面,Web等多種類型終端下的身份認證
• 全鏈路:終端調用服務,服務再調用另一服務的身份認證
這是簡單場景下統一認證服務解決的最基本的問題,在真實的企業場景下,這幾個基本問題會衍生出更加復雜的問題,這里列舉幾個我們遇到的企業場景:
• 多網隔離架構
• 公私混合云架構
• 集團多企業架構
接下來我們從基本的問題開始,逐步分析在這幾種企業場景下,統一認證服務會遇到的各種問題。
二、雙身份、多終端、全鏈路
雙身份
傳統的認證只考慮用戶身份認證,在微服務架構體系下應用數量劇增,應用間相互依賴授權的需求也大量出現,因此必須對應用進行身份認證。
這里的雙身份就是指用戶身份和應用身份,應用包括終端應用(App,輕應用)和服務端應用,在后邊的討論中,我們統一稱為應用。
為了對應用進行認證和授權,我們還需要對應用進行管理,包括應用的注冊和授權。
多終端
傳統PC辦公平臺,最常見的是Web端的認證,少量桌面應用端的認證,基本沒有考慮移動終端等其他終端類型。在輕應用化的體系下,各種類型的終端(Web,桌面,移動終端)的身份認證必須要被考慮在內。
全鏈路
在微服務化體系下,用戶的一個業務操作就可能涉及微服務間的多次調用,在整個調用鏈路中,每次調用都需要考慮原始用戶身份的傳遞和應用(服務)身份的變化的認證,如下:
三、多網隔離
在公安、政府這類對網絡安全要求極高的行業中,內部的網絡是一個多網隔離架構,多網絡區域間存在如下特點:
• 有至少一個網絡區域
• 多網絡區域間只能單向通訊,且有協議(僅HTTP)和流量限制
• 多網絡區域間用戶和應用是統一管理的
在這種網絡特性下,無法保證各個區域的應用接入同一個統一認證服務,那么應用在跨網調用時,該如何解決統一認證的問題?
可行的模式是:
• 在每個網絡區域部署一個統一認證服務
• 各個網絡區域的應用接入同個網絡的統一認證服務
• 多個網絡區域間的統一認證服務間連通互信
這種模式下,應用跨網調用認證就是多網絡區域間的統一認證服務需要解決的問題:
• 跨網認證:網絡區域1的應用,跨網調用網絡區域2的應用的身份認證
統一認證服務解決這個問題后,跨網調用和同網調用對應用來說是一致的,這能大大簡化應用開發的流程。
四、公私混合云
不少企業客戶都希望在使用公有云SaaS化服務的同時,可以私有化保存管理自己的業務數據,這類需求推薦采用公私混合云架構,這種架構存在如下特點:
• 公有云是多租戶模式
• 只有私有云能認證用戶密碼(純公有云架構才會在公有云認證密碼)
• 用戶在兩朵云之間是統一的,應用在兩朵云之間是不統一的
公私混合的網絡架構如下:
在公私混合的架構下,應用按如下模式部署:
• 公有云部署一個在線認證服務
• 每個租戶部署自己的私有認證服務
• 每朵云內的應用,接入同一朵云內的認證服務
在公私混合部署的模式下,認證服務需要解決新的難題:
• 租戶識別:用戶和應用請求認證身份前,識別認證請求所屬的租戶
• 跨云認證:私有應用調用在線應用或在線應用調用私有應用的認證
• 跨云應用授權管理:在線應用對私有應用授權或私有應用對在線應用授權
五、集團多企業
而對于大型的集團企業來說,集團中往往包含多個子公司,各個子公司則是相對獨立的企業,集團的特點如下:
• 多個子公司需要各自獨立的企業內認證中心
• 多個子公司之間用戶是統一管理的,應用是不統一管理的
集團多企業的架構,應用的部署模式如下:
• 各個企業間獨立部署私有認證服務
• 各企業的應用接入自己私有的認證服務
在這種模式下,統一認證服務引入的新問題如下:
• 跨企單點登錄:企業A用戶張三在企業A的Web應用中登錄后,打開企業B的Web應用的單點登錄
• 跨企認證:企業A的應用調用其他企業的應用的認證
• 認證中心管理:集團增加一個子公司和減少一個子公司時,管理多認證中心的成員變化
跨企應用授權管理:企業A對集團內其他企業的應用授權
六、更加復雜的企業場景
除了前面提到的幾種常見的衍生問題外,事實上我們還遇到過更加復雜的企業場景:
• 公私混合云模式下的集團企業聯盟架構中,跨云跨企帶來的復雜情景
• 私有云多網絡模式下的企業聯盟架構中,跨網跨企帶來的復雜情景
這里我們不再深入討論。
七、如何落地?
統一認證服務不僅要考慮本身需要解決的問題,還需要考慮如何在真實企業中落地。在多數企業中,企業內的認證體系大致分為如下幾種模式:
• 企業內以一個或多個AD為認證中心,各個應用獨立接入AD認證用戶
• 企業內存在一個(甚至多個)單點登錄服務,Web應用接入單點登錄
• 企業內各集成系統獨立登錄和管理用戶
對應這幾種模式,統一認證中心落地需要解決如下挑戰:
• 舊認證源對接:對接企業已有的認證源(如AD,舊用戶數據庫或已有統一用戶接口等)
• 舊單點登錄對接:已經接入舊單點登錄服務的應用在新的統一認證服務中的單點登錄
• 集成系統對接:大型集成系統快速接入統一認證
只有解決這幾個挑戰,才能實現統一認證服務的真正落地。
八、品高統一認證服務
品高統一認證服務,是目前BingoFuse平臺中最重要最基礎的組件服務之一,由品高軟件自主研發,致力于構建一個真正的企業級統一認證中心,支持多種企業級功能。
OIDC+OAth2
• 支持標準化的OIDC+OAuth2協議的應用接入
用戶+應用身份認證
多終端身份認證
• 支持企業級的應用預授權(兼容OAuth2標準的企業特性擴展)
• 支持全鏈路的用戶身份傳遞和應用身份認證(兼容OAuth2標準的企業特性擴展)
跨網互信
品高統一認證服務支持跨網互信功能,支持多網隔離環境下的跨網調用認證,如下圖:
在多網隔離的環境下:
• 支持對應用透明的跨網調用身份認證(標準OAuth2協議調用)
公私跨云
品高統一認證服務支持公私混合部署:
在公私混合部署中,包括如下功能:
• 支持多租戶識別
• 支持不同租戶分別使用私有認證和本地認證兩種認證模式
• 支持對應用透明的跨云調用身份認證(標準OAuth2協議調用)
企業聯盟
品高統一認證服務支持企業聯盟模式:
在集團多企業的架構中:
• 支持跨企Web應用的單點登陸
• 支持企業聯盟管理,在聯盟內動態加入和剔除成員
• 支持對應用透明的跨企調用身份認證(標準OAuth2協議調用)
拓展定制
品高統一認證服務具備良好的擴展性和定制能力,內置了對接多種常見認證源:
• 支持數據庫,LDAP,Window驗證等多種認證源
• 支持擴展第三方認證源(如API接口)接入
• 支持企業特定登陸邏輯和業務的定制開發
九、統一認證服務的價值
品高云企業級的統一認證服務,能為企業解決應用身份與用戶身份的統一認證問題,為大型集成系統的微服務化和移動終端輕應用化提供安全可靠的用戶身份認證和用戶身份傳遞,降低各個相互依賴的服務之間的復雜度的同時,也降低大型應用拆分和前后端分離的難度,從而為企業應用的輕應用化和微服務化提供可靠的支撐。
十、寫在最后
如何進行統一認證,是企業輕應用化和微服務化下遇到的第一個難題,然而,解決這個問題之后,很快輕應用和微服務將面臨第二個難題:統一用戶。
企業用戶數據的現狀是怎么樣的?存在什么難關?用戶數據在微服務架構下會有哪些使用場景?應用和服務如何使用用戶數據?這些問題,我們將在統一用戶的文章中討論,敬請期待。
?關于 BingoFuse
品高云應用支撐平臺(BingoFuse)是結合了云計算和移動互聯等技術的企業級應用全生命周期構建和交付平臺,為企業應用的移動化、微服務化和容器化提供全方位的基礎服務、開發運維工具和集成管理。
基于 BingoFuse,企業能夠從傳統相互孤立、周期過長的應用交付形態升級為快速適應業務變化、開放共享的新一代交付模式,有效地縮短實施周期、降低實施成本和改進用戶體驗等,從而為企業應用整體上云提供有力支撐。