HTTP Basic Authentication(HTTP 基本認(rèn)證)是 HTTP 1.0 提出的一種認(rèn)證機(jī)制,這個想必大家都很熟悉了,不再贅述。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),拉薩企業(yè)網(wǎng)站建設(shè),拉薩品牌網(wǎng)站建設(shè),網(wǎng)站定制,拉薩網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,拉薩網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。HTTP 基本認(rèn)證的過程如下基于Session的認(rèn)證應(yīng)該是最常用的一種認(rèn)證機(jī)制了。用戶登錄認(rèn)證成功后,將用戶相關(guān)數(shù)據(jù)存儲到Session中。
單體應(yīng)用架構(gòu),默認(rèn)Session會存儲在應(yīng)用服務(wù)器中,并且將 Session ID 返回到客戶端,存儲在瀏覽器的Cookie中。
分布式的架構(gòu),Session 存放于某個具體的應(yīng)用服務(wù)器中自然就無法滿足使用了,簡單的可以通過 Session 復(fù)制或者 Session 粘制的方案來解決。
Session 復(fù)制依賴于應(yīng)用服務(wù)器,需要應(yīng)用服務(wù)器有 Session 復(fù)制能力,不過現(xiàn)在大部分應(yīng)用服務(wù)器如 Tomcat、JBoss、WebSphere 等都已經(jīng)提供了這個能力。除此之外,Session 復(fù)制的一大缺陷在于當(dāng)節(jié)點數(shù)比較多時,大量的 Session 數(shù)據(jù)復(fù)制會占用較多網(wǎng)絡(luò)資源。
Session 粘滯是通過負(fù)載均衡器,將統(tǒng)一用戶的請求都分發(fā)到固定的服務(wù)器節(jié)點上,這樣就保證了對某一用戶而言,Session 數(shù)據(jù)始終是正確的。
不過這種方案依賴于負(fù)載均衡器,并且只能滿足水平擴(kuò)展的集群場景,無法滿足應(yīng)用分割后的分布式場景。
微服務(wù)架構(gòu)的認(rèn)證能力在微服務(wù)架構(gòu)下,每個微服務(wù)拆分的粒度會很細(xì),并且不只有用戶和微服務(wù)打交道,更多還有微服務(wù)間的調(diào)用。這個時候上述兩個方案都無法滿足,就要求必須要將 Session 從應(yīng)用服務(wù)器中剝離出來,存放在外部進(jìn)行集中管理??梢允菙?shù)據(jù)庫,也可以是分布式緩存,如 Memchached、Redis 等。這正是 David Borsos 建議的第二種方案,分布式 Session 方案。
基于 Token 的認(rèn)證隨著 Restful API、微服務(wù)的興起,基于 Token 的認(rèn)證現(xiàn)在已經(jīng)越來越普遍。Token 和 Session ID 不同,并非只是一個 key。
Token 一般會包含用戶的相關(guān)信息,通過驗證 Token 就可以完成身份校驗。像 Twitter、微信、QQ、GitHub 等公有服務(wù)的 API 都是基于這種方式進(jìn)行認(rèn)證的,一些開發(fā)框架如 OpenStack、Kubernetes 內(nèi)部 API 調(diào)用也是基于 Token 的認(rèn)證?;?Token 認(rèn)證的一個典型流程如下:
用戶輸入登錄信息(或者調(diào)用 Token 接口,傳入用戶信息),發(fā)送到身份認(rèn)證服務(wù)進(jìn)行認(rèn)證(身份認(rèn)證服務(wù)可以和服務(wù)端在一起,也可以分離,看微服務(wù)拆分情況了)。
身份驗證服務(wù)驗證登錄信息是否正確,返回接口(一般接口中會包含用戶基礎(chǔ)信息、權(quán)限范圍、有效時間等信息),客戶端存儲接口,可以存儲在 Session 或者數(shù)據(jù)庫中。
用戶將Token放在 HTTP 請求頭中,發(fā)起相關(guān) API 調(diào)用。
被調(diào)用的微服務(wù),驗證 Token 權(quán)限。
服務(wù)端返回相關(guān)資源和數(shù)據(jù)。
服務(wù)端無狀態(tài):Token 機(jī)制在服務(wù)端不需要存儲 session 信息,因為 Token 自身包含了所有用戶的相關(guān)信息。
性能較好,因為在驗證 Token 時不用再去訪問數(shù)據(jù)庫或者遠(yuǎn)程服務(wù)進(jìn)行權(quán)限校驗,自然可以提升不少性能。
支持移動設(shè)備。
支持跨程序調(diào)用,Cookie 是不允許垮域訪問的,而 Token 則不存在這個問題。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧