企業(yè)級(jí)應(yīng)用建設(shè)——SSO單點(diǎn)登錄

2 評(píng)論 15385 瀏覽 115 收藏 9 分鐘

本文介紹了SSO單點(diǎn)登錄的概念和實(shí)踐方式,以及單點(diǎn)登錄的應(yīng)用意義。

“新基建”概念在2020年特別的火,羅振宇“時(shí)間的朋友”2020跨年演講中也提到了“新基礎(chǔ)設(shè)施”。19年天貓雙十一美妝品牌銷量第一名——“完美日記”,借助“新基礎(chǔ)設(shè)施”在短短兩年時(shí)間,就達(dá)到甚至超越了傳統(tǒng)企業(yè)很多年深耕了多年的市場(chǎng)水平。而建設(shè)一個(gè)企業(yè)級(jí)應(yīng)用時(shí),亦可借助一些通用的“基礎(chǔ)設(shè)施”提供的能力,快速、高效地搭建應(yīng)用,SSO單點(diǎn)登錄就是其中一項(xiàng)非常常見的通用能力。

引言

在原來軟件開發(fā)模式下,任何一個(gè)模塊都是我們程序猿大哥一行一行代碼寫出來的?,F(xiàn)如今很多現(xiàn)成的功能,通過服務(wù)的形式提供給我們,拿來即用。

  • 云計(jì)算基礎(chǔ)服務(wù)——服務(wù)器、網(wǎng)絡(luò)、數(shù)據(jù)庫等等;
  • 中間件——消息隊(duì)列MQ、Redis、日志服務(wù)、應(yīng)用配置管理ACM等等;
  • 前、后端開發(fā)框架——VUE、Spring Cloud;
  • 短信服務(wù)——短信運(yùn)營商、各大云服務(wù)商的短信服務(wù);
  • 數(shù)據(jù)埋點(diǎn)——埋點(diǎn)服務(wù)提供商;
  • 消息推送——友盟、極光推送;

在企業(yè)級(jí)應(yīng)用中也有很多集成的功能產(chǎn)品,SSO單點(diǎn)登錄、工作流引擎、表單引擎等等不勝枚舉。類似于使用Axure畫原型的時(shí)候,設(shè)計(jì)一套符合產(chǎn)品前端組件的元件庫(比如我們常用的就是Element-ui),不用每次都用基礎(chǔ)的組件制作原型圖,比如需要一個(gè)穿梭框,直接拖過來稍作調(diào)整即可。

簡(jiǎn)介

單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱為 SSO,是比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。

  1. 企業(yè)開始進(jìn)行信息化建設(shè),搭建了一套業(yè)務(wù)系統(tǒng)A。通過用戶名密碼就可以登錄。
  2. 隨著業(yè)務(wù)的發(fā)展,又搭建了業(yè)務(wù)系統(tǒng)B、業(yè)務(wù)系統(tǒng)C、業(yè)務(wù)系統(tǒng)D……,每套系統(tǒng)都需要登錄、輸入各自的用戶名密碼,記憶成本高。
  3. 通過打通數(shù)據(jù)層,共用底層用戶數(shù)據(jù),統(tǒng)一不同業(yè)務(wù)系統(tǒng)的鑒權(quán)機(jī)制,實(shí)現(xiàn)了登錄所有系統(tǒng)用一套用戶名密碼即可。但是每套系統(tǒng)都得登錄一遍,操作起來還是麻煩,可以不可以只登錄一次就行了?
  4. SSO單點(diǎn)登錄應(yīng)運(yùn)而生,所有新技術(shù)的變革都是解決某項(xiàng)用戶需求痛點(diǎn)。

實(shí)踐

先通過一個(gè)栗子描述一下單點(diǎn)登錄實(shí)現(xiàn)的方式:

員工小明拿著公司的一卡通,可以進(jìn)公司大門,可以當(dāng)飯卡刷,可以公司內(nèi)便利店買東西。

  1. 小明進(jìn)公司大門,看門大爺問小明要公司的一卡通,小明沒有一卡通,查了查電話本,找到了行政部門的電話;
  2. 看門大爺把行政部門電話給了小明;
  3. 小明給行政部門電話打了過去;
  4. 行政部門接了電話;
  5. 小明報(bào)上了自己的大名,手機(jī)號(hào),哪個(gè)部門等等信息;
  6. 行政小姐姐去系統(tǒng)里面查了查,還真有小明這個(gè)人,于是就給了小明一個(gè)一卡通;
  7. 然后小明又拿著這個(gè)一卡通給老大爺一看;
  8. 老大爺還得再次確認(rèn)一下這個(gè)一卡通是不是真的,老大爺又去跟行政確認(rèn);
  9. 行政告訴老大爺,這個(gè)一卡通確實(shí)有效;
  10. 老大爺把小明放進(jìn)去了;

小明直到今天下班都拿著一卡通,去吃飯刷一卡通,去便利店拿著一卡通,通過一卡通確認(rèn)小明的身份。直到下了班,把一卡通還給了公司。

剛才這個(gè)例子簡(jiǎn)單描述了目前實(shí)現(xiàn)單點(diǎn)登錄比較流程的一個(gè)框架——CAS。

下面我們把實(shí)現(xiàn)邏輯還原一下。

  1. 【客戶端】發(fā)起請(qǐng)求,訪問www.123.com,經(jīng)過一個(gè)過濾器(CAS提供),判斷用戶是否登錄過。如果沒登錄重定向到【認(rèn)證中心】;
  2. 【認(rèn)證中心】給【客戶端】返回了重定向地址:www.cas.123.com;
  3. 【客戶端】重定向到www.cas.123.com;
  4. 【認(rèn)證中心】返回了登錄頁面;
  5. 用戶輸入用戶名、密碼;
  6. 【認(rèn)證中心】驗(yàn)證用戶名、密碼真實(shí)性。真實(shí)有效后,提供了一個(gè)ticket;
  7. 【客戶端】又拿著ticket去www.123.com請(qǐng)求;
  8. 【服務(wù)端】拿著剛才用戶提供過來的ticket去認(rèn)證中心驗(yàn)證真實(shí)性;
  9. 【認(rèn)證中心】確認(rèn)ticket真實(shí)有效;
  10. 【服務(wù)端】返回相關(guān)資源,【客戶端】展示相關(guān)資源。

當(dāng)用戶在訪問其他業(yè)務(wù)系統(tǒng)時(shí)候,其他業(yè)務(wù)系統(tǒng)都會(huì)去【認(rèn)證中心】驗(yàn)證用戶攜帶的這個(gè)ticket,認(rèn)證通過后即可直接訪問其他業(yè)務(wù)系統(tǒng),無需再次登錄。

從實(shí)現(xiàn)方式上還其他協(xié)議可以實(shí)現(xiàn)單點(diǎn)登錄目的:

  • SAML安全斷言標(biāo)記語言(Security Assertion Markup Language);
  • OAuth(開放授權(quán))是一個(gè)開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。
  • OIDC是OpenID Connect的簡(jiǎn)稱,它在OAuth2上構(gòu)建了一個(gè)身份層,是一個(gè)基于OAuth2協(xié)議的身份認(rèn)證標(biāo)準(zhǔn)協(xié)議;

也有一些已商業(yè)化的解決方案:Oracle OAM、阿里云IDaaS等。

具體采用何種解決方案,看要看業(yè)務(wù)的具體需求。而且不同解決方案各有優(yōu)略,在此不再贅述。

意義

我們了解到單點(diǎn)登錄解決了用戶端交互體驗(yàn)的訴求,其實(shí)它的好處遠(yuǎn)不止于此。

數(shù)據(jù)應(yīng)用方面意義

  • 針對(duì)用戶來說,減少了繁瑣的操作,優(yōu)化了用戶體驗(yàn);
  • 針對(duì)企業(yè)來說,通過單點(diǎn)登錄統(tǒng)一用戶數(shù)據(jù),推動(dòng)私域流量的搭建,同時(shí)是構(gòu)建企業(yè)數(shù)據(jù)中臺(tái)的基石。

不論是企業(yè)內(nèi)部的業(yè)務(wù)系統(tǒng),還是面向各行業(yè)C端用戶的產(chǎn)品也都在進(jìn)行單點(diǎn)登錄建設(shè)。

產(chǎn)品研發(fā)方面意義

  • 統(tǒng)一性——統(tǒng)一底層數(shù)據(jù)結(jié)構(gòu);
  • 拓展性——利于外部系統(tǒng)對(duì)接;
  • 安全性——自己保障高可用同時(shí),通過統(tǒng)一鑒權(quán)機(jī)制,進(jìn)一步保障數(shù)據(jù)安全;
  • 高效性——提高產(chǎn)品開發(fā)效率,不用重復(fù)造輪子;大型業(yè)務(wù)系統(tǒng)背后,用戶一次操作可能需要很多業(yè)務(wù)系統(tǒng)協(xié)作,通過統(tǒng)一的鑒權(quán)機(jī)制提升整體性能效率;

 

作者:天氣不錯(cuò),公眾號(hào):天氣的朋友(friends_of_tianqi)

本文由@天氣不錯(cuò) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash, 基于CC0協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 反復(fù)看

    來自北京 回復(fù)
  2. 學(xué)習(xí)收藏了,今天就當(dāng)一回課代表吧。搭建私域流量運(yùn)營,當(dāng)然必須要有工具。給大家推薦一款由【人人都是產(chǎn)品經(jīng)理】【起點(diǎn)課堂】旗下獨(dú)立研發(fā)的私域流量運(yùn)營工具——糧倉·企微管家。糧倉·企微管家是一款基于企業(yè)微信的一款營銷型SCRM系統(tǒng)。集裂變獲客、留存促活、銷售變現(xiàn)、客戶管理于一體的私域增長閉環(huán)系統(tǒng)。覆蓋企業(yè)客戶運(yùn)營的生命周期,助力企業(yè)私域流量運(yùn)營,提升售前/售后服務(wù)能力。還可以免費(fèi)開始使用哦~ http://996.pm/M0A06

    來自廣東 回復(fù)
  3. 來自浙江 回復(fù)