企業(yè)級應(yīng)用建設(shè)——SSO單點登錄
本文介紹了SSO單點登錄的概念和實踐方式,以及單點登錄的應(yīng)用意義。
“新基建”概念在2020年特別的火,羅振宇“時間的朋友”2020跨年演講中也提到了“新基礎(chǔ)設(shè)施”。19年天貓雙十一美妝品牌銷量第一名——“完美日記”,借助“新基礎(chǔ)設(shè)施”在短短兩年時間,就達到甚至超越了傳統(tǒng)企業(yè)很多年深耕了多年的市場水平。而建設(shè)一個企業(yè)級應(yīng)用時,亦可借助一些通用的“基礎(chǔ)設(shè)施”提供的能力,快速、高效地搭建應(yīng)用,SSO單點登錄就是其中一項非常常見的通用能力。
引言
在原來軟件開發(fā)模式下,任何一個模塊都是我們程序猿大哥一行一行代碼寫出來的?,F(xiàn)如今很多現(xiàn)成的功能,通過服務(wù)的形式提供給我們,拿來即用。
- 云計算基礎(chǔ)服務(wù)——服務(wù)器、網(wǎng)絡(luò)、數(shù)據(jù)庫等等;
- 中間件——消息隊列MQ、Redis、日志服務(wù)、應(yīng)用配置管理ACM等等;
- 前、后端開發(fā)框架——VUE、Spring Cloud;
- 短信服務(wù)——短信運營商、各大云服務(wù)商的短信服務(wù);
- 數(shù)據(jù)埋點——埋點服務(wù)提供商;
- 消息推送——友盟、極光推送;
在企業(yè)級應(yīng)用中也有很多集成的功能產(chǎn)品,SSO單點登錄、工作流引擎、表單引擎等等不勝枚舉。類似于使用Axure畫原型的時候,設(shè)計一套符合產(chǎn)品前端組件的元件庫(比如我們常用的就是Element-ui),不用每次都用基礎(chǔ)的組件制作原型圖,比如需要一個穿梭框,直接拖過來稍作調(diào)整即可。
簡介
單點登錄(Single Sign On),簡稱為 SSO,是比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。
- 企業(yè)開始進行信息化建設(shè),搭建了一套業(yè)務(wù)系統(tǒng)A。通過用戶名密碼就可以登錄。
- 隨著業(yè)務(wù)的發(fā)展,又搭建了業(yè)務(wù)系統(tǒng)B、業(yè)務(wù)系統(tǒng)C、業(yè)務(wù)系統(tǒng)D……,每套系統(tǒng)都需要登錄、輸入各自的用戶名密碼,記憶成本高。
- 通過打通數(shù)據(jù)層,共用底層用戶數(shù)據(jù),統(tǒng)一不同業(yè)務(wù)系統(tǒng)的鑒權(quán)機制,實現(xiàn)了登錄所有系統(tǒng)用一套用戶名密碼即可。但是每套系統(tǒng)都得登錄一遍,操作起來還是麻煩,可以不可以只登錄一次就行了?
- SSO單點登錄應(yīng)運而生,所有新技術(shù)的變革都是解決某項用戶需求痛點。
實踐
先通過一個栗子描述一下單點登錄實現(xiàn)的方式:
員工小明拿著公司的一卡通,可以進公司大門,可以當飯卡刷,可以公司內(nèi)便利店買東西。
- 小明進公司大門,看門大爺問小明要公司的一卡通,小明沒有一卡通,查了查電話本,找到了行政部門的電話;
- 看門大爺把行政部門電話給了小明;
- 小明給行政部門電話打了過去;
- 行政部門接了電話;
- 小明報上了自己的大名,手機號,哪個部門等等信息;
- 行政小姐姐去系統(tǒng)里面查了查,還真有小明這個人,于是就給了小明一個一卡通;
- 然后小明又拿著這個一卡通給老大爺一看;
- 老大爺還得再次確認一下這個一卡通是不是真的,老大爺又去跟行政確認;
- 行政告訴老大爺,這個一卡通確實有效;
- 老大爺把小明放進去了;
小明直到今天下班都拿著一卡通,去吃飯刷一卡通,去便利店拿著一卡通,通過一卡通確認小明的身份。直到下了班,把一卡通還給了公司。
剛才這個例子簡單描述了目前實現(xiàn)單點登錄比較流程的一個框架——CAS。
下面我們把實現(xiàn)邏輯還原一下。
- 【客戶端】發(fā)起請求,訪問www.123.com,經(jīng)過一個過濾器(CAS提供),判斷用戶是否登錄過。如果沒登錄重定向到【認證中心】;
- 【認證中心】給【客戶端】返回了重定向地址:www.cas.123.com;
- 【客戶端】重定向到www.cas.123.com;
- 【認證中心】返回了登錄頁面;
- 用戶輸入用戶名、密碼;
- 【認證中心】驗證用戶名、密碼真實性。真實有效后,提供了一個ticket;
- 【客戶端】又拿著ticket去www.123.com請求;
- 【服務(wù)端】拿著剛才用戶提供過來的ticket去認證中心驗證真實性;
- 【認證中心】確認ticket真實有效;
- 【服務(wù)端】返回相關(guān)資源,【客戶端】展示相關(guān)資源。
當用戶在訪問其他業(yè)務(wù)系統(tǒng)時候,其他業(yè)務(wù)系統(tǒng)都會去【認證中心】驗證用戶攜帶的這個ticket,認證通過后即可直接訪問其他業(yè)務(wù)系統(tǒng),無需再次登錄。
從實現(xiàn)方式上還其他協(xié)議可以實現(xiàn)單點登錄目的:
- SAML安全斷言標記語言(Security Assertion Markup Language);
- OAuth(開放授權(quán))是一個開放標準,允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。
- OIDC是OpenID Connect的簡稱,它在OAuth2上構(gòu)建了一個身份層,是一個基于OAuth2協(xié)議的身份認證標準協(xié)議;
也有一些已商業(yè)化的解決方案:Oracle OAM、阿里云IDaaS等。
具體采用何種解決方案,看要看業(yè)務(wù)的具體需求。而且不同解決方案各有優(yōu)略,在此不再贅述。
意義
我們了解到單點登錄解決了用戶端交互體驗的訴求,其實它的好處遠不止于此。
數(shù)據(jù)應(yīng)用方面意義
- 針對用戶來說,減少了繁瑣的操作,優(yōu)化了用戶體驗;
- 針對企業(yè)來說,通過單點登錄統(tǒng)一用戶數(shù)據(jù),推動私域流量的搭建,同時是構(gòu)建企業(yè)數(shù)據(jù)中臺的基石。
不論是企業(yè)內(nèi)部的業(yè)務(wù)系統(tǒng),還是面向各行業(yè)C端用戶的產(chǎn)品也都在進行單點登錄建設(shè)。
產(chǎn)品研發(fā)方面意義
- 統(tǒng)一性——統(tǒng)一底層數(shù)據(jù)結(jié)構(gòu);
- 拓展性——利于外部系統(tǒng)對接;
- 安全性——自己保障高可用同時,通過統(tǒng)一鑒權(quán)機制,進一步保障數(shù)據(jù)安全;
- 高效性——提高產(chǎn)品開發(fā)效率,不用重復(fù)造輪子;大型業(yè)務(wù)系統(tǒng)背后,用戶一次操作可能需要很多業(yè)務(wù)系統(tǒng)協(xié)作,通過統(tǒng)一的鑒權(quán)機制提升整體性能效率;
作者:天氣不錯,公眾號:天氣的朋友(friends_of_tianqi)
本文由@天氣不錯 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash, 基于CC0協(xié)議。
反復(fù)看
學(xué)習(xí)收藏了,今天就當一回課代表吧。搭建私域流量運營,當然必須要有工具。給大家推薦一款由【人人都是產(chǎn)品經(jīng)理】【起點課堂】旗下獨立研發(fā)的私域流量運營工具——糧倉·企微管家。糧倉·企微管家是一款基于企業(yè)微信的一款營銷型SCRM系統(tǒng)。集裂變獲客、留存促活、銷售變現(xiàn)、客戶管理于一體的私域增長閉環(huán)系統(tǒng)。覆蓋企業(yè)客戶運營的生命周期,助力企業(yè)私域流量運營,提升售前/售后服務(wù)能力。還可以免費開始使用哦~ http://996.pm/M0A06
贊