成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 開發(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)公司。前不久,在閑聊間我問他日常工作的內(nèi)容,他說他所在部門只負(fù)責(zé)一件事,即用戶與登錄。

[[183330]]

而他的具體工作則是為各個(gè)業(yè)務(wù)子網(wǎng)站提供友好的登錄部件(Widget),從而統(tǒng)一整個(gè)網(wǎng)站群的登錄體驗(yàn),同時(shí)也能令業(yè)務(wù)開發(fā)者不用花費(fèi)額外的精力去關(guān)注用戶鑒權(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),為滿足大量的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)過程。至少涉及了對(duì)Web版本Outlook服務(wù)的鑒權(quán),也涉及了對(duì)離線版本的郵件應(yīng)用的鑒權(quán)。要能夠支持同一批用戶既能夠在瀏覽器中登錄,又能夠在移動(dòng)端或本地應(yīng)用登錄(例如 Windows UWP 應(yīng)用程序),就需要開發(fā)出能夠?yàn)閮煞N應(yīng)用程序服務(wù)的鑒權(quán)體系。

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

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

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

方便用戶的多種登錄方式

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

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

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

[[183333]]

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

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

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

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

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

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

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

 

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

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

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

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

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

[[183335]]

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

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

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

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

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

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

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

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

與第三方集成:迎接更多用戶

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

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

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

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

 [[183336]]

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

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

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

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

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

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

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

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(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無密碼

2010-07-17 00:57:52

Telnet身份驗(yàn)證

2012-04-10 09:36:58

2013-07-21 18:32:13

iOS開發(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)證用戶

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)

主站蜘蛛池模板: 成年网站在线观看 | 国产精品久久久久久久久图文区 | 成人国产在线视频 | 羞视频在线观看 | 亚洲网视频 | 日韩精品免费在线观看 | 激情91| 日韩视频一区二区 | 久久免费精品 | 欧美日韩国产在线 | 日日日日日日bbbbb视频 | 国产精品视频一区二区三区 | 久久免费精品视频 | 国内毛片毛片毛片毛片 | 欧美五月婷婷 | 亚洲激精日韩激精欧美精品 | 久久久久久久久久久久91 | 亚洲人va欧美va人人爽 | 午夜天堂精品久久久久 | 国产精品福利网站 | 成人av在线播放 | 黄网免费 | 中文字幕国产视频 | 久热精品在线观看视频 | 四虎影院一区二区 | 国产精品亚洲欧美日韩一区在线 | 日韩视频―中文字幕 | 日韩精品一区二区三区在线观看 | 亚洲一级在线 | 成人午夜看片 | 欧美亚洲国产一区二区三区 | 国产高清在线精品一区二区三区 | 亚洲精品欧美一区二区三区 | 精品九九 | 天堂色综合 | 精久久久 | 久久av网| 国产高清在线精品 | 国产日产精品一区二区三区四区 | 黄色毛片黄色毛片 | 亚洲黄色在线免费观看 |