偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

登錄工程:現(xiàn)代Web應(yīng)用的典型身份驗(yàn)證需求

開(kāi)發(fā) 開(kāi)發(fā)工具
在一個(gè)現(xiàn)代Web應(yīng)用中,圍繞“登錄”這一需求,儼然已經(jīng)衍生出了一個(gè)新的工程。不管是我們面臨的需求,還是解決這些需求所運(yùn)用的方法與工具,都已經(jīng)超出了傳統(tǒng)Web應(yīng)用身份驗(yàn)證技術(shù)的范疇。

 朋友就職于某大型互聯(lián)網(wǎng)公司。前不久,在閑聊間我問(wèn)他日常工作的內(nèi)容,他說(shuō)他所在部門(mén)只負(fù)責(zé)一件事,即用戶(hù)與登錄。

[[183330]]

而他的具體工作則是為各個(gè)業(yè)務(wù)子網(wǎng)站提供友好的登錄部件(Widget),從而統(tǒng)一整個(gè)網(wǎng)站群的登錄體驗(yàn),同時(shí)也能令業(yè)務(wù)開(kāi)發(fā)者不用花費(fèi)額外的精力去關(guān)注用戶(hù)鑒權(quán)。這很有趣。

可以看出,在一個(gè)現(xiàn)代Web應(yīng)用中,圍繞“登錄”這一需求,儼然已經(jīng)衍生出了一個(gè)新的工程。不管是我們面臨的需求,還是解決這些需求所運(yùn)用的方法與工具,都已經(jīng)超出了傳統(tǒng)Web應(yīng)用身份驗(yàn)證技術(shù)的范疇。

在之前一篇文章中,我聊到傳統(tǒng)Web應(yīng)用中的身份驗(yàn)證技術(shù),文章中列出的一些方法在之前很長(zhǎng)一段時(shí)間內(nèi),為滿(mǎn)足大量的Web應(yīng)用中身份驗(yàn)證的需求提供了思路。在這篇文章里,我將簡(jiǎn)要介紹現(xiàn)代Web應(yīng)用中幾種典型的身份驗(yàn)證需求。

形式多樣的鑒權(quán)

考慮這樣一個(gè)場(chǎng)景:我們?cè)陔娔X上登錄了微軟賬號(hào),電腦里的“郵件”應(yīng)用能夠自動(dòng)同步郵件了;我們登錄Web版本的Outlook郵件服務(wù),如果在郵件里發(fā)現(xiàn)了重要的工作安排,將其添加到日歷中,很快電腦里的“日歷”應(yīng)用便能夠?qū)⑦@些日程顯示到Windows桌面上。

[[183331]]

這個(gè)場(chǎng)景包含了多個(gè)鑒權(quán)過(guò)程。至少涉及了對(duì)Web版本Outlook服務(wù)的鑒權(quán),也涉及了對(duì)離線(xiàn)版本的郵件應(yīng)用的鑒權(quán)。要能夠支持同一批用戶(hù)既能夠在瀏覽器中登錄,又能夠在移動(dòng)端或本地應(yīng)用登錄(例如 Windows UWP 應(yīng)用程序),就需要開(kāi)發(fā)出能夠?yàn)閮煞N應(yīng)用程序服務(wù)的鑒權(quán)體系。

在瀏覽器里,我們通常假設(shè)用戶(hù)不信任瀏覽器,用戶(hù)通過(guò)與服務(wù)器建立的臨時(shí)瀏覽器會(huì)話(huà)完成操作。會(huì)話(huà)開(kāi)始時(shí),用戶(hù)被重定向到特定頁(yè)面進(jìn)行登錄。登錄完成后,用戶(hù)通過(guò)持續(xù)與服務(wù)器交互來(lái)延續(xù)臨時(shí)會(huì)話(huà)的時(shí)長(zhǎng);一旦用戶(hù)一段時(shí)間不與服務(wù)器交互,則他的會(huì)話(huà)很快就會(huì)過(guò)期(被服務(wù)器強(qiáng)制登出)。

在移動(dòng)應(yīng)用中,情況有所不同。相對(duì)來(lái)說(shuō),安裝在移動(dòng)設(shè)備中的應(yīng)用程序更受用戶(hù)信任,移動(dòng)設(shè)備本身的安全性也比瀏覽器更好。另一方面,將用戶(hù)重定向到一個(gè)網(wǎng)頁(yè)去登錄的做法,并不能提供很好的用戶(hù)體驗(yàn)——更重要的是,用戶(hù)在使用移動(dòng)設(shè)備時(shí),時(shí)間是碎片化的。我們無(wú)法要求用戶(hù)必須在特定時(shí)間內(nèi)完成操作,也就基本沒(méi)有會(huì)話(huà)的概念:我們需要找到一種能夠安全地在設(shè)備中相對(duì)持久地存儲(chǔ)用戶(hù)憑據(jù)的方法,并且Web應(yīng)用服務(wù)器可能需要配合這種方式來(lái)完成鑒權(quán)。此外,移動(dòng)設(shè)備也不是絕對(duì)安全的,一旦設(shè)備丟失,將給用戶(hù)帶來(lái)安全風(fēng)險(xiǎn)。所以需要在服務(wù)器端提供一種機(jī)制來(lái)取消已登錄設(shè)備的訪(fǎng)問(wèn)權(quán)限。

(圖片來(lái)自:http://docs.identityserver.io/en/release/intro/big_picture.html)

方便用戶(hù)的多種登錄方式

“輸入用戶(hù)名和密碼”作為標(biāo)準(zhǔn)的登錄憑據(jù)被廣泛用于各種登錄場(chǎng)景。不過(guò),在Web應(yīng)用、尤其是互聯(lián)網(wǎng)應(yīng)用中,網(wǎng)站運(yùn)營(yíng)方越來(lái)越發(fā)現(xiàn)使用用戶(hù)名作為用戶(hù)標(biāo)識(shí)確實(shí)給網(wǎng)站提供了便利,但對(duì)用戶(hù)來(lái)說(shuō)卻并不是那么有幫助:用戶(hù)很可能會(huì)忘記自己的用戶(hù)名。

用戶(hù)在使用不同網(wǎng)站的過(guò)程中,為了不忘記用戶(hù)名,只好使用相同的用戶(hù)名。如果恰好在某個(gè)網(wǎng)站遇到了該用戶(hù)名被占用的情況,他就不得不臨時(shí)為這個(gè)網(wǎng)站擬一個(gè)新的用戶(hù)名,于是這個(gè)新用戶(hù)名很快就被忘記了。

在注冊(cè)時(shí),越來(lái)越多的網(wǎng)站要求用戶(hù)提供電子郵箱地址或者手機(jī)號(hào)碼,有的網(wǎng)站還支持讓用戶(hù)以多種方式登錄。比如,提供一種讓用戶(hù)在使用了一種方式注冊(cè)之后,還能綁定其他登錄方式的功能。綁定完成之后,用戶(hù)可以選用他喜歡的登錄方式。它隱含了一個(gè)網(wǎng)站與用戶(hù)共同的認(rèn)知:聯(lián)系方式的擁有者即為用戶(hù)本人,這種“從屬”關(guān)系能夠用于證實(shí)用戶(hù)的身份。當(dāng)用戶(hù)下次在注冊(cè)新網(wǎng)站時(shí)遇到“郵件地址已被注冊(cè)”,或者“手機(jī)號(hào)已被注冊(cè)”的時(shí)候,基本可以確定自己曾經(jīng)注冊(cè)過(guò)這個(gè)網(wǎng)站了。

[[183333]]

(圖片來(lái)自:http://cargocollective.com/)

另外,登錄過(guò)程中所支持的聯(lián)系方式也呈現(xiàn)出多樣性。電子郵件服務(wù)在很多場(chǎng)景中逐漸被形式多樣的其他聯(lián)系方式(比如手機(jī)、微信等)所取代,不少人根本沒(méi)有使用郵件的習(xí)慣,如果網(wǎng)站只提供郵箱注冊(cè)的途徑,有時(shí)候還會(huì)遭到那些不經(jīng)常使用電子郵箱的用戶(hù)的反感。所以支持多種登錄方式成為了很多網(wǎng)站的迫切需求。

雙因子鑒權(quán):增強(qiáng)型登錄過(guò)程

上一節(jié)中提到的“從屬”關(guān)系不光可以幫助用戶(hù)判斷自己是否注冊(cè)過(guò)一個(gè)網(wǎng)站,也可以幫助網(wǎng)站在忘記密碼時(shí)進(jìn)行臨時(shí)認(rèn)證,從而幫助用戶(hù)完成新密碼的設(shè)置。如果將這種從屬關(guān)系用于正常登錄過(guò)程中的進(jìn)一步驗(yàn)證,就構(gòu)成了雙因子鑒權(quán)。

雙因子鑒權(quán)要求用戶(hù)在登錄過(guò)程中提供兩種形式不同的憑據(jù),只有兩種驗(yàn)證都成功才能繼續(xù)操作?,F(xiàn)代化Web應(yīng)用正在越來(lái)越多地使用這種增強(qiáng)型驗(yàn)證方式來(lái)保護(hù)關(guān)鍵操作的安全性。例如,查看和修改個(gè)人信息,以及修改登錄密碼等。

相信不少人還記得QQ密碼保護(hù)問(wèn)題的機(jī)制,它使得盜號(hào)者即使盜取了QQ密碼,在不知道密碼保護(hù)問(wèn)題的情況下,也無(wú)法修改現(xiàn)有密碼,讓賬號(hào)擁有者得以及時(shí)挽回?fù)p失。

雙因子的原理在于:兩種驗(yàn)證因子性質(zhì)不一致,冒用身份者同時(shí)獲得用戶(hù)這兩種信息的機(jī)率十分低,從而能有效地保護(hù)賬號(hào)的安全。在QQ密碼保護(hù)的例子里,密碼是一種每次登錄時(shí)都會(huì)使用的固定文本、相對(duì)容易被盜;而密碼保護(hù)問(wèn)題卻是不怎么頻繁設(shè)置和更改的、隱秘的、個(gè)人關(guān)聯(lián)性極強(qiáng)的,不容易被盜。

 

(圖片來(lái)自:http://bit.ly/2kFc492)

現(xiàn)代化Web應(yīng)用形式多樣,設(shè)備種類(lèi)繁多,場(chǎng)景復(fù)雜多變,而為了更好地保護(hù)用戶(hù)賬號(hào)的安全,很多應(yīng)用開(kāi)始將雙因子驗(yàn)證作為登錄過(guò)程中的鑒權(quán)步驟。而為了兼具安全和便利的特點(diǎn),一些應(yīng)用還要求運(yùn)用一些優(yōu)化策略以提高用戶(hù)體驗(yàn)。比如,僅在用戶(hù)在新的設(shè)備上登錄、一段時(shí)間未登錄之后的再次登錄、在不常用的地點(diǎn)登錄、修改聯(lián)系信息和密碼、轉(zhuǎn)移賬戶(hù)資產(chǎn)等關(guān)鍵操作時(shí)要求雙因子鑒權(quán)。

單點(diǎn)登錄:還是需要精心設(shè)計(jì)

以前,一般只有大型網(wǎng)站、向用戶(hù)提供多種服務(wù)的時(shí)候(比如,網(wǎng)易公司運(yùn)營(yíng)網(wǎng)易門(mén)戶(hù)和網(wǎng)易郵箱等多種服務(wù)),才會(huì)有單點(diǎn)登錄的迫切需求。但在現(xiàn)代化Web系統(tǒng)中,無(wú)論是從業(yè)務(wù)的多元化還是從架構(gòu)的服務(wù)化來(lái)考慮,對(duì)服務(wù)的劃分都更細(xì)致了。

從整個(gè)企業(yè)的業(yè)務(wù)模式(例如網(wǎng)易門(mén)戶(hù)和網(wǎng)易郵箱),到某項(xiàng)業(yè)務(wù)的具體流程(例如京東訂單和京東支付),再到某個(gè)流程中的具體步驟(例如短信驗(yàn)證與支付扣款),“服務(wù)”這一概念越來(lái)越輕量級(jí),于是人們不得不創(chuàng)造了“微服務(wù)”這個(gè)新的品類(lèi)詞匯來(lái)拓展認(rèn)知空間。

[[183335]]

(圖片來(lái)自:http://cargocollective.com/)

在這整個(gè)的演變過(guò)程中,出于安全的需要,身份驗(yàn)證的需求都是一直存在的,而且粒度越來(lái)越細(xì)。以前我們更關(guān)注用戶(hù)在多個(gè)子站點(diǎn)的統(tǒng)一登錄體驗(yàn),現(xiàn)在我們還需要關(guān)注用戶(hù)在多個(gè)子流程中的統(tǒng)一登錄體驗(yàn),以及在多個(gè)步驟中的統(tǒng)一登錄體驗(yàn)。而這些流程和步驟,很可能是獨(dú)立的Web系統(tǒng)(微服務(wù)),也有可能是一個(gè)用戶(hù)界面(獨(dú)立應(yīng)用),還有可能是一個(gè)第三方系統(tǒng)(接口集成)。

可以說(shuō),單點(diǎn)登錄的需求有增無(wú)減,只不過(guò)當(dāng)開(kāi)發(fā)者對(duì)這種模式已經(jīng)習(xí)以為常,不再意識(shí)到這也是一個(gè)能夠?qū)iT(mén)討論的話(huà)題。

考慮與用戶(hù)系統(tǒng)集成,與業(yè)務(wù)系統(tǒng)分離

在討論安全時(shí),分不開(kāi)的兩個(gè)部分就是鑒權(quán)與授權(quán)。

鑒權(quán)的過(guò)程是向用戶(hù)發(fā)起質(zhì)詢(xún)(Challenge),完成身份驗(yàn)證工作。這正是登錄所解決的問(wèn)題。通常在登錄系統(tǒng)成功識(shí)別用戶(hù)之后,就會(huì)將接下來(lái)的工作直接交給業(yè)務(wù)系統(tǒng)來(lái)完成。由于各個(gè)系統(tǒng)中的授權(quán)模型可能與業(yè)務(wù)形態(tài)有關(guān)系,因此登錄與業(yè)務(wù)系統(tǒng)分離是很自然的設(shè)計(jì)。

在對(duì)安全要求更嚴(yán)格的企業(yè)或企業(yè)應(yīng)用中,可能需要專(zhuān)門(mén)的訪(fǎng)問(wèn)管理機(jī)制,不過(guò),這樣的做法在互聯(lián)網(wǎng)應(yīng)用中很少見(jiàn)。但在互聯(lián)網(wǎng)Web應(yīng)用中,授權(quán)的范疇也包含一個(gè)很小的公有部分,是各個(gè)業(yè)務(wù)系統(tǒng)所共有的:即用戶(hù)狀態(tài)。我們希望在各業(yè)務(wù)子系統(tǒng)之間共享用戶(hù)狀態(tài):用戶(hù)被鎖定之后,他在所有業(yè)務(wù)系統(tǒng)都被鎖定;用戶(hù)被注銷(xiāo)之后,所有業(yè)務(wù)系統(tǒng)中有關(guān)他的數(shù)據(jù)都被封存。

另外在多個(gè)業(yè)務(wù)系統(tǒng)中,還可能會(huì)共用用戶(hù)的基本資料和偏好設(shè)置等數(shù)據(jù)。比如,類(lèi)似于郵件地址這樣的資料,它可以作為登錄憑據(jù),也可以作為一個(gè)基本的聯(lián)系方式。如果用戶(hù)在一個(gè)子系統(tǒng)設(shè)置了偏好語(yǔ)言,其他子系統(tǒng)則直接使用該設(shè)置即可。這樣,開(kāi)發(fā)一個(gè)“用戶(hù)”系統(tǒng)的想法也就應(yīng)運(yùn)而生了。由于與用戶(hù)的狀態(tài)等基礎(chǔ)信息的關(guān)系很緊密,登錄與用戶(hù)系統(tǒng)之間的集成是很自然的,將登錄子系統(tǒng)直接作為這個(gè)用戶(hù)系統(tǒng)的一部分也不失為一種不錯(cuò)的實(shí)踐。

與第三方集成:迎接更多用戶(hù)

“即得”是一個(gè)開(kāi)放式文檔共享應(yīng)用,特點(diǎn)是“無(wú)需登錄,即傳即得”,它利用長(zhǎng)時(shí)間有效的Cookie來(lái)標(biāo)識(shí)用戶(hù),從而免除了人們使用應(yīng)用之前必須注冊(cè)登錄的繁瑣步驟。

這種做法的風(fēng)險(xiǎn)是,如果用戶(hù)有及時(shí)清理瀏覽器Cookie的習(xí)慣,那很可能導(dǎo)致用戶(hù)再一次登錄時(shí)不再被識(shí)別。不過(guò)從這樣一個(gè)小例子中,卻容易看出登錄的真正作用,就是Web應(yīng)用識(shí)別用戶(hù)的過(guò)程,當(dāng)下次同一個(gè)用戶(hù)再次使用時(shí),Web應(yīng)用就能夠知道“這就是上次來(lái)過(guò)的那個(gè)用戶(hù)”。

如果識(shí)別用戶(hù)這一需求能夠在不需要用戶(hù)注冊(cè)的前提下搞定,豈不兩全齊美?基于第三方身份提供方的接口來(lái)識(shí)別已經(jīng)在其他平臺(tái)注冊(cè)的用戶(hù),并將其轉(zhuǎn)化為自己應(yīng)用中的用戶(hù),這種方式完全可行,并且大量的開(kāi)發(fā)人員已經(jīng)有了豐富的實(shí)踐。

從 2010 年開(kāi)始就有不少的大型互聯(lián)網(wǎng)公司開(kāi)始推出開(kāi)放平臺(tái)服務(wù),讓第三方應(yīng)用通過(guò)Web接口與這些互聯(lián)網(wǎng)服務(wù)交互,從而為他們提供更豐富多彩的功能。在這個(gè)過(guò)程中,一些應(yīng)用不為這些平臺(tái)提供擴(kuò)展,卻巧辟蹊徑地利用了這些開(kāi)放平臺(tái)的身份識(shí)別接口來(lái)免除新用戶(hù)注冊(cè)的過(guò)程,從而為自己的產(chǎn)品快速導(dǎo)入用戶(hù)。不少網(wǎng)站都提供“使用微博賬號(hào)登錄”功能,相信讀者一定體驗(yàn)過(guò)。

 [[183336]]

(圖片來(lái)自:http://bit.ly/2kFi3e8)

如果你的應(yīng)用需要向第三方提供用戶(hù),那么我們的角色就由“從上下文中讀取用戶(hù)身份”變成了“向上下文中寫(xiě)入用戶(hù)身份”了。如果你正好有過(guò)與各互聯(lián)網(wǎng)公司開(kāi)放平臺(tái)的接口打交道的經(jīng)歷,這時(shí)候,你就可以體驗(yàn)一把提供開(kāi)放、安全上下文的挑戰(zhàn)了。如果……你的平臺(tái)既希望讓其他平臺(tái)的用戶(hù)能夠平滑接入,又希望向其他平臺(tái)公開(kāi)自己的用戶(hù),那可能是另一番更有趣的挑戰(zhàn)。這個(gè)過(guò)程,也可以作為生物驗(yàn)證之外的另一種間接消除密碼的實(shí)踐方式吧。

登錄,現(xiàn)在實(shí)實(shí)在在地成為了一個(gè)獨(dú)立的工程。尤其在形態(tài)多樣的基于Web的應(yīng)用,以及這些Web應(yīng)用本身所依賴(lài)的各色后端服務(wù)快速生長(zhǎng)的過(guò)程中,各種鑒權(quán)需求隨之而來(lái)。如何在保障各個(gè)環(huán)節(jié)中安全的同時(shí),又為用戶(hù)提供良好的體驗(yàn),成為一個(gè)挑戰(zhàn)。

另外,個(gè)人信息泄露的事件頻繁被曝光,它們導(dǎo)致的社會(huì)問(wèn)題也開(kāi)始被更多人關(guān)注和重視,作為IT系統(tǒng)支撐者的工程師們有責(zé)任了解事關(guān)安全的基礎(chǔ)知識(shí),并掌握必要的技能去保護(hù)用戶(hù)數(shù)據(jù)和企業(yè)利益。

我會(huì)在接下來(lái)的文章中介紹解決典型登錄需求的具體技術(shù)方案,以及相關(guān)領(lǐng)域的安全實(shí)踐常識(shí)。

【本文是51CTO專(zhuān)欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2017-05-05 10:55:31

Web應(yīng)用登錄工程身份驗(yàn)證

2024-05-11 08:14:53

2010-09-06 11:24:47

CHAP驗(yàn)證PPP身份驗(yàn)證

2009-08-05 15:54:49

Web Service

2025-04-25 07:00:00

身份驗(yàn)證CISO無(wú)密碼

2010-07-17 00:57:52

Telnet身份驗(yàn)證

2012-04-10 09:36:58

2013-07-21 18:32:13

iOS開(kāi)發(fā)ASIHTTPRequ

2011-02-21 10:54:45

2013-05-03 09:44:52

2012-10-23 16:12:35

2009-04-09 23:44:08

軟件身份驗(yàn)證用戶(hù)

2010-07-19 17:30:47

2022-10-31 10:00:00

2013-12-06 09:18:44

2010-11-30 15:31:38

SharePoint Kerberos

2021-07-19 10:10:15

身份驗(yàn)證漏洞Windows Hel

2010-11-03 16:07:38

DB2身份驗(yàn)證

2012-02-20 09:55:41

ibmdw

2021-08-27 10:40:49

GitHubGitLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)