最近在項目群里看到大神們討論到了一個SSO的技術(shù)點匿乃,感興趣就查了一下。下面就帶大家初識一下這個蠻高大上的技術(shù)點豌汇。
SSO (single sign on) ——單點登錄
?? .首先介紹一下什么是單點登錄幢炸。
? 拿我們最熟悉的騰訊來說,眾所周知拒贱,騰訊出品的應(yīng)用有很多宛徊,QQ,騰訊微博逻澳,騰訊新聞闸天,騰訊游戲等诬乞,我們要使用這些應(yīng)用的話刹勃,一般來說是每個應(yīng)用都要注冊登錄的,如果你還不想每個應(yīng)用都使用同一套密碼同時你又記不住密碼的話旅挤,那就很崩潰了陨享。如果這些應(yīng)用能一次性注冊登錄并退出多好葱淳。O(∩_∩)O。我們的豬腳該出場了抛姑,sso輕松解決這些問題。
?sso是一種統(tǒng)一認證和授權(quán)機制艳狐,在一個多系統(tǒng)共存的環(huán)境下定硝,用戶在一處登錄后,就不用在其他系統(tǒng)中登錄毫目,也就是用戶的一次登錄能得到其他所有系統(tǒng)的信任蔬啡。
??.了解一下單點登錄的優(yōu)缺點:
?優(yōu)點:
1.提高用戶的效率。
用戶不再被多次登錄困擾镀虐,也不需要記住多個 ID 和密碼箱蟆。另外,用戶忘記密碼并求助于支持人員的情況也會減少刮便。
2.提高開發(fā)人員的效率空猜。
SSO 為開發(fā)人員提供了一個通用的身份驗證框架。實際上恨旱,如果 SSO 機制是獨立的辈毯,那么開發(fā)人員就完全不需要為身份驗證操心。他們可以假設(shè)搜贤,只要對應(yīng)用程序的請求附帶一個用戶名谆沃,身份驗證就已經(jīng)完成了。
3.簡化管理仪芒。
如果應(yīng)用程序加入了單點登錄協(xié)議唁影,管理用戶帳號的負擔就會減輕耕陷。簡化的程度取決于應(yīng)用程序,因為 SSO 只處理身份驗證据沈。所以哟沫,應(yīng)用程序可能仍然需要設(shè)置用戶的屬性(比如訪問特權(quán))。
?缺點:
1.不利于重構(gòu)
因為涉及到的系統(tǒng)很多卓舵,要重構(gòu)必須要兼容所有的系統(tǒng)南用,可能很耗時。
2.無人看守桌面
因為只需要登錄一次掏湾,所有的授權(quán)的應(yīng)用系統(tǒng)都可以訪問裹虫,可能導致一些很重要的信息泄露。
??.技術(shù)實現(xiàn)機制
1.當用戶第一次訪問應(yīng)用系統(tǒng)的時候融击,因為還沒有登錄筑公,會被引導到認證系統(tǒng)中進行登錄;
2.根據(jù)用戶提供的登錄信息尊浪,認證系統(tǒng)進行身份校驗匣屡,如果通過校驗,應(yīng)該返回給用戶一個認證的憑據(jù)--ticket拇涤;
3.用戶再訪問別的應(yīng)用的時候捣作,就會將這個ticket帶上,作為自己認證的憑據(jù)鹅士,應(yīng)用系統(tǒng)接受到請求之后會把ticket送到認證系統(tǒng)進行校驗券躁,檢查ticket的合法性。如果通過校驗掉盅,用戶就可以在不用再次登錄的情況下訪問應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3了也拜。
?要實現(xiàn)SSO,需要以下主要的功能:
1.所有應(yīng)用系統(tǒng)共享一個身份認證系統(tǒng)趾痘。
統(tǒng)一的認證系統(tǒng)是SSO的前提之一慢哈。認證系統(tǒng)的主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進行登錄認證永票;認證成功后卵贱,認證系統(tǒng)應(yīng)該生成統(tǒng)一的認證標志(ticket),返還給用戶瓦侮。另外艰赞,認證系統(tǒng)還應(yīng)該對ticket進行效驗,判斷其有效性肚吏。
2.所有應(yīng)用系統(tǒng)能夠識別和提取ticket信息
要實現(xiàn)SSO的功能方妖,讓用戶只登錄一次,就必須讓應(yīng)用系統(tǒng)能夠識別已經(jīng)登錄過的用戶罚攀。應(yīng)用系統(tǒng)應(yīng)該能對ticket進行識別和提取党觅,通過與認證系統(tǒng)的通訊雌澄,能自動判斷當前用戶是否登錄過,從而完成單點登錄的功能杯瞻。
第一次接觸這個SSO镐牺,覺得是個比較方便的技術(shù)點】颍可能現(xiàn)在已經(jīng)發(fā)展的很成熟了睬涧。等我回頭再學學再來叨叨??????