摘要:由華為技術(shù)大咖VS派拉軟件CTO為大家詳解云原生架構(gòu)下的身份管理平臺(tái),構(gòu)建云安全數(shù)字身份入口。
本文分享自華為云社區(qū)《DTSE Tech Talk | 第4期:云原生架構(gòu)下的數(shù)字身份治理實(shí)踐》,作者: 華為云社區(qū)精選。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到平川網(wǎng)站設(shè)計(jì)與平川網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋平川地區(qū)。
DTSE Tech Talk是華為云開發(fā)者聯(lián)盟推出的技術(shù)公開課,解讀云上前沿技術(shù),暢聊開發(fā)應(yīng)用實(shí)踐。專家團(tuán)隊(duì)授課,答疑解惑,助力開發(fā)者使用華為云開放能力進(jìn)行應(yīng)用構(gòu)建、技術(shù)創(chuàng)新。
在本期《身份應(yīng)用云上技術(shù)架構(gòu)實(shí)踐》的主題分享中,華為技術(shù)大咖VS派拉軟件CTO,帶來(lái)云原生架構(gòu)下的身份管理平臺(tái),為企業(yè)、機(jī)構(gòu)、開發(fā)者構(gòu)建云安全數(shù)字身份入口,賦能用戶全場(chǎng)景下的數(shù)字身份治理與鏈接服務(wù)。
上圖為身份管理平臺(tái)的架構(gòu)圖,平臺(tái)在架構(gòu)方面大規(guī)模使用華為云云原生組件,以及網(wǎng)絡(luò)、安全、k8s平臺(tái)、中間件等產(chǎn)品。通過(guò)實(shí)踐應(yīng)用云原生產(chǎn)品,企業(yè)僅需關(guān)注業(yè)務(wù)即可,無(wú)需關(guān)注產(chǎn)品本身。為加速產(chǎn)品迭代,平臺(tái)底層由華為云提供專業(yè)的服務(wù),如容器鏡像服務(wù)、云數(shù)據(jù)庫(kù)MySQL、分布式緩存服務(wù)等。
在開發(fā)過(guò)程中,派拉采用基于Spring Cloud的微服務(wù)體系進(jìn)行架構(gòu),用戶的訪問(wèn)首先會(huì)經(jīng)過(guò)華為云組件保障流量的安全和負(fù)載均衡,并經(jīng)過(guò)K8s的Ingress組件后進(jìn)入到服務(wù)空間,在微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway組件對(duì)接用戶的訪問(wèn)進(jìn)行驗(yàn)證并分發(fā)到具體的業(yè)務(wù)微服務(wù)中。微服務(wù)網(wǎng)關(guān)作為唯一對(duì)外暴露的服務(wù),也是唯一一個(gè)有Session狀態(tài)的服務(wù),其他都為無(wú)狀態(tài)服務(wù)。對(duì)于微服務(wù)的治理全面采用Spring Cloud體系進(jìn)行統(tǒng)一管理,包括Nacos作為微服務(wù)注冊(cè)中心和配置中心,Spring Boot Admin對(duì)微服務(wù)進(jìn)行監(jiān)控,Hystrix做降級(jí)和熔斷及故障隔離,XXL-Job作為分布式任務(wù)管理,還有自研的ParaPKI服務(wù)管理證書和密鑰。
在云上自動(dòng)化發(fā)布實(shí)踐方面,采用云下開發(fā)測(cè)試,云上驗(yàn)收發(fā)布模式進(jìn)行產(chǎn)品迭代的方式。產(chǎn)品發(fā)布過(guò)程中全面擁抱DevOps,并融入零信任安全理念建立DevSecOps開發(fā)模式。利用自研的獨(dú)立pki服務(wù),可以控制每一個(gè)用戶的后臺(tái)訪問(wèn)權(quán)限時(shí)間。而且在整個(gè)身份安全保護(hù)開發(fā)運(yùn)維的過(guò)程中,以及各種工具的使用上,派拉將安全一直貫穿整個(gè)研發(fā)體系。
云下產(chǎn)品開發(fā)和測(cè)試環(huán)境運(yùn)行IDC機(jī)房中,利用零信任產(chǎn)品,開發(fā)和測(cè)試人員從辦公網(wǎng)或家庭網(wǎng)能安全的接入開發(fā)測(cè)試環(huán)境,所有的代碼提交都通過(guò)流水線自動(dòng)化編譯打包上傳到Nexus和Harbor中,再通過(guò)自動(dòng)化發(fā)布能力在開發(fā)和測(cè)試環(huán)境中K8s上進(jìn)行版本發(fā)布,通過(guò)測(cè)試后的產(chǎn)品版本根據(jù)流程觸發(fā)提交鏡像到華為云容器管理組件。保證從代碼提交后打包的制品在各個(gè)環(huán)境下的一致性,減少質(zhì)量問(wèn)題逃逸。另外對(duì)于K8s、微服務(wù)、中間件的管理平臺(tái)的認(rèn)證和操作的安全性是一個(gè)很大的挑戰(zhàn),我們通過(guò)Nginx從網(wǎng)絡(luò)上隔離運(yùn)維和開發(fā)人員直接訪問(wèn)管理平臺(tái),所有人必須通過(guò)mTLS才能連接管理平臺(tái),并通過(guò)ParaPKI為運(yùn)維開發(fā)人員分配合適權(quán)限的個(gè)人證書,從身份、權(quán)限、時(shí)效性來(lái)保護(hù)管理平臺(tái)的操作。
由于網(wǎng)絡(luò)邊界的消失,對(duì)于傳統(tǒng)從內(nèi)網(wǎng)網(wǎng)絡(luò)邊界的安全訪問(wèn)模型,已經(jīng)無(wú)法適應(yīng)云原生時(shí)代,在云上運(yùn)維架構(gòu)和安全實(shí)踐中,派拉基于零信任理念,通過(guò)先認(rèn)證后鏈接的方式,保障端到服務(wù)、端到端、服務(wù)到服務(wù)的全鏈路網(wǎng)絡(luò)安全。實(shí)現(xiàn)全面啟用mTLS,凡是網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)一律加密,通過(guò)零信任網(wǎng)關(guān)代理所有對(duì)外服務(wù),基于沙箱技術(shù)保護(hù)客戶端自身安全,最終完成整合全鏈路網(wǎng)絡(luò)、數(shù)據(jù)、身份及權(quán)限的安全一體化方案。最終保證從開發(fā)階段代碼安全、前后端調(diào)試安全、到產(chǎn)品運(yùn)維安全,最后到產(chǎn)品發(fā)布服務(wù)內(nèi)部調(diào)用方面的一個(gè)全面防護(hù)。
在實(shí)踐應(yīng)審盡審理念方面,派拉通過(guò)日志組件審計(jì)所有通過(guò)網(wǎng)關(guān)的用戶訪問(wèn)數(shù)據(jù),并存儲(chǔ)到ES中,結(jié)合大數(shù)據(jù)和AI的能力對(duì)用戶的所有訪問(wèn)行為進(jìn)行分析,結(jié)合用戶的權(quán)限策略來(lái)持續(xù)的控制用戶行為風(fēng)險(xiǎn),及時(shí)發(fā)現(xiàn)風(fēng)險(xiǎn)并啟用二次強(qiáng)認(rèn)證來(lái)緩解風(fēng)險(xiǎn)。另外,派拉開發(fā)了獨(dú)立的日志審計(jì)服務(wù),完全自定義化的配置客戶實(shí)際需要的日志查詢和報(bào)表分析的業(yè)務(wù)。
多租戶能力是SaaS服務(wù)的基礎(chǔ)能力,通過(guò)多租戶用一套資源為多個(gè)客戶提供云上服務(wù),進(jìn)而發(fā)揮資源的重復(fù)利用產(chǎn)生效率。派拉從域名開始進(jìn)行租戶隔離,租戶訪問(wèn)進(jìn)入服務(wù)開始對(duì)Redis、elastic、MySQL、對(duì)象存儲(chǔ)全域的多租戶隔離,最大程度保證由租戶產(chǎn)生的數(shù)據(jù)所有權(quán)歸于租戶。未來(lái),派拉與華為云將一起去推動(dòng)多租戶開源組件在開源社區(qū)上的貢獻(xiàn)。
接下來(lái),準(zhǔn)備進(jìn)行更細(xì)粒度的多租戶隔離能力,根據(jù)租戶體量和優(yōu)先級(jí)來(lái)決定租戶對(duì)于資源占用量的隔離,從網(wǎng)絡(luò)帶寬、容器計(jì)算資源到數(shù)據(jù)庫(kù)存儲(chǔ)等中間件的優(yōu)先響應(yīng),都可以基于租戶的優(yōu)先級(jí)進(jìn)行隔離和分配,不僅如此還可以對(duì)關(guān)鍵租戶提高更加高的體驗(yàn)。
作為一款SaaS化的身份管理產(chǎn)品,充分使用了緩存、隊(duì)列、事件機(jī)制保障強(qiáng)大的高可用高并發(fā)能力,管理所有租戶的用戶數(shù)據(jù),是所有用戶的第一入口。
在大量的用戶注冊(cè)請(qǐng)求進(jìn)入服務(wù)后,通過(guò)MQ隊(duì)列機(jī)制進(jìn)行排隊(duì)消費(fèi),達(dá)到削峰的效果。用戶注冊(cè)完成后同樣通過(guò)隊(duì)列機(jī)制調(diào)用消息通知服務(wù)來(lái)降低通用業(yè)務(wù)服務(wù)的壓力,保障各個(gè)微服務(wù)的業(yè)務(wù)處理能力。
用戶注冊(cè)完成入庫(kù)后通過(guò)Maxwell組件監(jiān)聽數(shù)據(jù)庫(kù)的binlog文件,對(duì)新創(chuàng)建的用戶推送到Redis緩存和ES中,從而為更加高并發(fā)要求登錄業(yè)務(wù)提供保障。
在安全架構(gòu)方面,利用原子化微服務(wù)架構(gòu)進(jìn)行設(shè)計(jì),通過(guò)基于身份和公鑰技術(shù)設(shè)計(jì)的工作負(fù)載安全保障能力,并結(jié)合微服務(wù)的邊車模式,在不干擾業(yè)務(wù)代碼的情況下把安全能力通過(guò)Java agent技術(shù)加載到容器服務(wù)中,即使單個(gè)服務(wù)由于未知漏洞被黑客攻破后,也無(wú)法橫向移動(dòng)到其他并行運(yùn)行的服務(wù),最終控制威脅最小化。
用戶的訪問(wèn)首先會(huì)經(jīng)過(guò)Gateway對(duì)用戶的身份和權(quán)限進(jìn)行校驗(yàn),合法的用戶會(huì)被頒發(fā)一個(gè)身份Token,這個(gè)Token會(huì)附加到Http Header中透?jìng)鞯胶罄m(xù)的服務(wù)中,每個(gè)服務(wù)接受到上一個(gè)服務(wù)的請(qǐng)求時(shí),必須經(jīng)過(guò)兩層認(rèn)證訪問(wèn),第一基于mTLS技術(shù)對(duì)請(qǐng)求主體的設(shè)備或服務(wù)的身份合法性校驗(yàn),第二從http請(qǐng)求頭中的Token來(lái)對(duì)訪問(wèn)者的身份和權(quán)限校驗(yàn);并持續(xù)在調(diào)用鏈路中的每個(gè)服務(wù)中都會(huì)進(jìn)行校驗(yàn),保障了全鏈路的身份和數(shù)據(jù)安全。
統(tǒng)一單點(diǎn)登錄,用戶只需登錄一次即可訪問(wèn)多個(gè)業(yè)務(wù)系統(tǒng)無(wú)需重復(fù)登錄,雖然看似簡(jiǎn)單的功能其內(nèi)部邏輯極其復(fù)雜,從如何安全驗(yàn)證用戶憑據(jù),保障用戶身份不被冒用,到用戶在多個(gè)系統(tǒng)游走過(guò)程中,如何把合法身份和權(quán)限信息在多個(gè)業(yè)務(wù)系統(tǒng)中安全傳遞。
結(jié)合產(chǎn)品可支持的多種認(rèn)證方式和多種認(rèn)證協(xié)議,以身份管理系統(tǒng)為IDP為各個(gè)業(yè)務(wù)系統(tǒng)集成完成單點(diǎn)授權(quán)和認(rèn)證,也支持身份管理系統(tǒng)為SP通過(guò)認(rèn)證代理到其他第三方的身份認(rèn)證中心IDP去認(rèn)證,實(shí)現(xiàn)多認(rèn)證中互信能力。
當(dāng)用戶登錄平臺(tái)時(shí),平臺(tái)會(huì)記錄用戶的登錄信息,根據(jù)用戶行為進(jìn)行持續(xù)風(fēng)險(xiǎn)識(shí)別,結(jié)合不同的認(rèn)證方式在不同場(chǎng)景或風(fēng)險(xiǎn)級(jí)別調(diào)用不同強(qiáng)度的認(rèn)證能力。
統(tǒng)一的身份治理更加的復(fù)雜,不僅涉及到各種身份同步和權(quán)限治理的技術(shù),還需要與客戶各種業(yè)務(wù)系統(tǒng)中的實(shí)際業(yè)務(wù)相結(jié)合,制定身份和權(quán)限治理的指導(dǎo)原則。最終才能做到在用戶只登錄一次后,完全無(wú)障礙的在各個(gè)業(yè)務(wù)系統(tǒng)中安全可靠的處理其業(yè)務(wù)。
應(yīng)用開發(fā)文檔:https://support.developer.huaweicloud.com/doc/zh-cn_topic_000000-000000
參考示例代碼:https://gitee.com/HuaweiCloudDeveloper
問(wèn)題咨詢和專家服務(wù)預(yù)約(需注冊(cè)華為云賬號(hào)):https://support.developer.huaweicloud.com/feedback/?ticket=ST--mPu9vjwIeAGISrz1rXBAdwt7-sso
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~