登錄(鑒權(quán)與授權(quán))歷史演進版

關(guān)于鑒權(quán)和授權(quán)戴差,之前寫過不少文章:

但是优床,聊到的點都比較散,沒有系統(tǒng)歸納到底這些年處理登錄是如何演變的所禀?于是,才有了這篇歷史版

背景知識1:什么是鑒權(quán)與授權(quán)?

  • 鑒權(quán) Authentication割去,指對于一個聲明者所聲明的身份權(quán)利脸爱,對其所聲明的真實性進行鑒別確認的過程遇汞。
    例子:用戶名張三,密碼******簿废,用戶名和密碼通過挖財驗證空入,登陸成功
  • 授權(quán) Authorization,一般是指獲取用戶的委派權(quán)限族檬。
    例子:我是張三歪赢,有權(quán)訪問git/client/jizhang,因為gitlab給我進行了授權(quán)

可見单料,先有鑒權(quán)埋凯,才有授權(quán)。而登錄扫尖,其實就是鑒權(quán)的過程白对。但是,現(xiàn)在的登錄服務换怖,同時做了鑒權(quán)和授權(quán)的工作甩恼,所以,用戶是感知不到這兩個階段的明顯區(qū)別。

背景知識2:登錄的痛點在哪里条摸?

  • 場景1: 如果一個企業(yè)有非常多的內(nèi)部系統(tǒng)悦污,且每個系統(tǒng)都需要單獨注冊,登錄钉蒲,那么塞关,員工維護那么多賬號密碼,估計要瘋掉的子巾。
  • 場景2:非常多的小型Web應用帆赢,沒有能力或者不想做自己的登錄系統(tǒng),那么线梗,是否可以用一些公開椰于,通用的登錄服務呢?

所有痛點都指向一個問題:需要一個三方平臺仪搔,可以提供統(tǒng)一登錄能力(包括鑒權(quán)與授權(quán))

下面瘾婿,讓我們看下歷史是如何演進的。

第一階段:LDAP

LDAP協(xié)議(Lightweight Directory Access Protocol烤咧,輕型目錄訪問協(xié)議)偏陪,是基于IP協(xié)議上的。

特點:

  • 規(guī)范了數(shù)據(jù)存儲方式(賬號密碼煮嫌,組織結(jié)構(gòu)等信息)笛谦,以及驗證賬號密碼的過程。
  • 只負責對賬號密碼進行驗證昌阿,也就是說饥脑,只做鑒權(quán),不做授權(quán)懦冰。
  • 除了驗證賬號密碼這個額外的功能外灶轰,看上去更像一個數(shù)據(jù)庫,只負責數(shù)據(jù)存儲和讀取刷钢。

為了這種數(shù)據(jù)和數(shù)據(jù)之間互相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)而設(shè)計的東西笋颤,有個特殊的名字叫:目錄服務(Directory service)。LDAP是目錄服務中的一種内地。

image.png

第二階段:單點登錄(single sign-on伴澄,SSO)- SAML協(xié)議

萬維網(wǎng)興起之后,網(wǎng)站的登錄訴求噴涌而出(PC Web時代)瓤鼻,這時秉版,而每個站點針對不同用戶,又可能有不同的授權(quán)機制茬祷。比如論壇系統(tǒng)清焕,系統(tǒng)管理員,管理員,用戶秸妥,游客滚停,他們可訪問的菜單權(quán)限,數(shù)據(jù)權(quán)限粥惧,都是不同的键畴。

于是,授權(quán)必不可少突雪。

SSO出現(xiàn)的初衷起惕,是為了提供一個全球統(tǒng)一的用戶身份服務,達到一次登錄就可以訪問其它網(wǎng)站的理想咏删。

在2001年由OASIS組織安全服務技術(shù)委員會推出了SAML(安全主張標記語言惹想,Security Assertion Markup Language,以XML為基礎(chǔ))督函,提出了對SSO實現(xiàn)的整體技術(shù)和安全規(guī)范嘀粱。

SAML協(xié)議里,約定了參與SSO的三方:瀏覽器辰狡,身份提供者(IDP)锋叨,服務提供者(SP),以及這三方相互的通訊次序宛篇,加密方法娃磺,傳輸數(shù)據(jù)格式。

image.png

與LDAP不同些己,SAML協(xié)議登錄過程豌鸡,非常依賴瀏覽器重定向功能嘿般,而LDAP協(xié)議都是應用與LDAP服務間的直接通訊段标。

第三階段:去中心化的OpenID

說簡單點,OpenID的目的就是建立一個統(tǒng)一的SSO的方式炉奴,而不用在意IDP服務的提供方逼庞。

用戶可以使用自己的IDP服務,或者選擇一個可信任的IDP服務提供方瞻赶,在這個IDP服務上完成注冊赛糟。那么只要SP站點能使用OpenID的方式,用戶就可以完成登錄了砸逊。

第四階段:OAuth2

Android璧南,ios等智能手機興起,移動時代來臨师逸。此時司倚,強依賴瀏覽器重定向的SAML協(xié)議就顯得不太合時宜了,于是OAuth2出現(xiàn),更好的支持SSO登錄动知。

OAuth 2.0是一個關(guān)于授權(quán)(authorization)的開放網(wǎng)絡(luò)標準皿伺,特點為:

  • IDP與SP需要明確的知道對方,所以在授權(quán)流程開始之前盒粮, SP需要在IDP服務注冊鸵鸥,通過審核,拿到特定公鑰丹皱,這就是注冊過程妒穴。
  • IDP被進一步細分。在SP與服務提供者之間摊崭,設(shè)置了一個授權(quán)層宰翅,SP不能直接登錄服務提供者却特,只能登錄授權(quán)層霎冯,授權(quán)完成之后室谚,才能通過令牌獲取資源(大部分情況下柴淘,下面兩個服務的提供商為同一個):
    • 資源服務器(Resource Server) - 存放用戶資源和信息
    • 授權(quán)服務器(Authorization Server) - 給三方頒發(fā)授權(quán)令牌(access token)
  • 不強依賴瀏覽器重定向疑苔,可支持移動場景(參考移動應用微信登錄開發(fā)指南
OAuth authentication flow.png

以微信授權(quán)登錄為例蛇数,"應用程序"是三方應用松捉,"授權(quán)服務器"和“資源服務器”都是微信栅屏。

小結(jié)

所以啸箫,回答自己之前的那個問題耸彪,SSO和OAuth 2.0是什么關(guān)系?
答案:無論是OAuth 2.0忘苛,還是SAML協(xié)議蝉娜,OpenID等,都是為了實現(xiàn)SSO的手段扎唾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末召川,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胸遇,更是在濱河造成了極大的恐慌荧呐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纸镊,死亡現(xiàn)場離奇詭異倍阐,居然都是意外死亡,警方通過查閱死者的電腦和手機逗威,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門峰搪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凯旭,你說我怎么就攤上這事概耻¢沟撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵咐蚯,是天一觀的道長童漩。 經(jīng)常有香客問我,道長春锋,這世上最難降的妖魔是什么矫膨? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮期奔,結(jié)果婚禮上侧馅,老公的妹妹穿的比我還像新娘。我一直安慰自己呐萌,他們只是感情好馁痴,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肺孤,像睡著了一般罗晕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赠堵,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天小渊,我揣著相機與錄音,去河邊找鬼茫叭。 笑死酬屉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的揍愁。 我是一名探鬼主播呐萨,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼莽囤!你這毒婦竟也來了谬擦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤烁登,失蹤者是張志新(化名)和其女友劉穎怯屉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饵沧,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年赌躺,在試婚紗的時候發(fā)現(xiàn)自己被綠了狼牺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡礼患,死狀恐怖是钥,靈堂內(nèi)的尸體忽然破棺而出掠归,到底是詐尸還是另有隱情,我是刑警寧澤悄泥,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布虏冻,位于F島的核電站,受9級特大地震影響弹囚,放射性物質(zhì)發(fā)生泄漏厨相。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一鸥鹉、第九天 我趴在偏房一處隱蔽的房頂上張望蛮穿。 院中可真熱鬧,春花似錦毁渗、人聲如沸践磅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽府适。三九已至,卻和暖如春肺樟,著一層夾襖步出監(jiān)牢的瞬間细溅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工儡嘶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喇聊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓蹦狂,卻偏偏與公主長得像誓篱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凯楔,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容