成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

API網(wǎng)關(guān)設(shè)計(一)之Token多平臺身份認(rèn)證方案

leon / 3299人閱讀

摘要:網(wǎng)關(guān)設(shè)計一之多平臺身份認(rèn)證方案隨著的發(fā)展現(xiàn)如今早已不是當(dāng)年的登陸單一模式,而不久的到來又會帶來無人車等其他設(shè)備的接入。所以為了應(yīng)對將來的時代的變化,一個好的多平臺認(rèn)證登陸方案是切實所需。

API網(wǎng)關(guān)設(shè)計(一)之Token多平臺身份認(rèn)證方案
隨著4g的發(fā)展現(xiàn)如今早已不是當(dāng)年的web登陸單一模式,而不久5g的到來又會帶來無人車等其他設(shè)備的接入。所以為了應(yīng)對將來的時代的變化,一個好的多平臺認(rèn)證登陸方案是切實所需。
概述

今天咱們面對移動互聯(lián)網(wǎng)的發(fā)展,系統(tǒng)一般是多個客戶端對應(yīng)一個服務(wù)端。
客戶端統(tǒng)一通過F5或者Nginx代理轉(zhuǎn)發(fā)到API網(wǎng)關(guān),最后發(fā)送到服務(wù)API。
如下圖架構(gòu)圖所示

這個過程當(dāng)中就存在多個很明顯需要做的事,如下列表

身份認(rèn)證(登陸以及會話級用戶認(rèn)證)

權(quán)限認(rèn)證(當(dāng)然是認(rèn)證用戶身份之后,確認(rèn)是否有權(quán)限調(diào)用API)

調(diào)用頻率控制(限流算法如計數(shù),滑動窗口,漏桶,令牌桶)

負(fù)載算法(如權(quán)重,均衡,例外再比如灰度發(fā)布都是同一個思路)

而咱們今天主要講的了就是身份認(rèn)證這一塊具體怎么設(shè)計Token,在前一篇文章中已經(jīng)描述過整體的登陸邏輯,不清楚的同學(xué)可以看一下。

Token設(shè)計

如今的系統(tǒng)不可能存在一個token走到底打通所有系統(tǒng),為啥這么說?
由于不同的客戶端,會存在不同的認(rèn)證場景。
咱們具體看一下分析過程

認(rèn)證場景

客戶端以下幾點(diǎn)用戶認(rèn)證的場景

移動端登陸,會話API調(diào)用

web端登陸,會話API調(diào)用

移動端掃碼登陸web(如微信掃碼)

移動端授權(quán)登陸(如微信授權(quán))

而通過客戶端的認(rèn)證場景,咱們又能具體推理出功能級別的具體場景如下

客戶端記住用戶密碼免登陸認(rèn)證

API調(diào)用的會話級別認(rèn)證

移動端已登陸授權(quán)web端免密登陸

Token設(shè)計要點(diǎn)

通過上面的認(rèn)證場景才能不難得出如下結(jié)論

多層級Token

Token之間可向下授權(quán)

Token使用頻率

Token失效時間

級別劃分 1~3 分別為低中高

Token 名稱 級別 使用頻率 有效期 保密級別 變化成本
webtoken web端token 3(持久化) 1 >=1天 3 3
mobiletoken mobile端token 3(持久化) 1 >=1天 3 3
sessiontoken 會話token 2(會話級) 3 分鐘級別 3 1
accesstoken API認(rèn)證token 1(短暫認(rèn)證) 3 秒級 2 1

再具體看一張token層級架構(gòu)圖

為啥要將token分這么多類型了?
咱們先根據(jù)上圖捋一下思路具體如下幾步

用戶名和密碼認(rèn)證獲取webtoken或者mobiletoken

用戶登原先存在webtoken或mobiletoken可以拿到sessiontoken

通過sessiontoken可以去拿去短暫的accesstoken

通過accesstoken可以調(diào)用API

層級token優(yōu)勢

通過上面咱們可以看出來最終調(diào)用api是通過accesstoken,那么咱們?yōu)槭裁催€需要設(shè)計
多層token了?主要有以下幾個原因

不同的客戶端對于免登陸的要求是不一樣的,比如web端輸入一個用戶名密碼或者通過手機(jī)接受一個驗證碼是很方便的事情,所以token時間不會存放特別長。但是對于移動端來說,對于用戶體驗比較好的情況就是隨時隨刻都是登陸狀態(tài),輸入一次密碼最好能用個大半年。

安全性考慮這一點(diǎn)是由于第點(diǎn)的原因?qū)е拢捎趙ebtoken或者mobiletoken存儲在客戶端的時間較長。如果調(diào)用頻率很高,及其容易導(dǎo)致被抓包獲取到黑客手中。因此引入了會話級別token通過持久化在客戶端的mobiletoken等去獲取。會話token的特點(diǎn)就是調(diào)用頻率高,失效時間快,就算被被人拿到了不會造成奔潰式的問題出現(xiàn)。

統(tǒng)一后臺api調(diào)用控制,accesstoken的存在是真正調(diào)用api的token,也是通過sessiontoken獲取。為了不同客戶端統(tǒng)一接入api實現(xiàn),如果acesstoken不統(tǒng)一。那代碼層面實現(xiàn)又全部耦合到了一起,如果是統(tǒng)一的就可以將代碼抽出來一個層級放在網(wǎng)關(guān)統(tǒng)一實現(xiàn)。

綜合上面可以總結(jié)出來的優(yōu)勢有如下幾點(diǎn)

解耦系統(tǒng) (accesstoken網(wǎng)關(guān)之后的系統(tǒng)可以任意部署)

提高系統(tǒng)擴(kuò)展性(可以接入不同性質(zhì)的客戶端)

層級清楚便于維護(hù)(token分層代碼,便于獨(dú)立維護(hù))

token安全控制

首先咱們得明白一個道理對于任何登陸系統(tǒng)來說根本就不存在百分百的安全,唯一可以做到的就是提高破解成本。具體的安全控制方法我的總結(jié)如下

使用https哪怕被抓包看到的也是加密數(shù)據(jù),除非客戶端和服務(wù)端都被黑了。這尼瑪這人這么優(yōu)秀,干點(diǎn)啥不好。。。

根據(jù)業(yè)務(wù)要求設(shè)置不同token失效時間,token失效時間越短越安全,用戶體驗也會有所下滑

token可以根據(jù)動態(tài)加密算法以及密碼定時更新,然后通過cookie打回客戶端

移動端可以獲取設(shè)備id以及ip,當(dāng)短時間內(nèi)出現(xiàn)同一賬號不同設(shè)備請求,及時失效所有token,或者發(fā)出告警短信給用戶,權(quán)限級別較高的操作禁用。

移動端加入人臉或者指紋識別

完整架構(gòu)圖

歡迎掃碼關(guān)注公眾號繼續(xù)討論

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73726.html

相關(guān)文章

  • 論微服務(wù)安全

    摘要:微服務(wù)能夠為應(yīng)用程序設(shè)計提供一種更具針對性范圍性與模塊性的實現(xiàn)方案。安全微服務(wù)部署模式可謂多種多樣但其中使用最為廣泛的當(dāng)數(shù)每主機(jī)服務(wù)模式。在微服務(wù)環(huán)境下,安全性往往成為最大的挑戰(zhàn)。不同微服務(wù)之間可通過多種方式建立受信關(guān)系。 每個人都在討論微服務(wù),每個人也都希望能夠?qū)崿F(xiàn)微服務(wù)架構(gòu),而微服務(wù)安全也日漸成為大家關(guān)注的重要問題。今天小數(shù)與大家分享的文章,就從應(yīng)用層面深入探討了應(yīng)對微服務(wù)安全挑戰(zhàn)...

    plokmju88 評論0 收藏0
  • 架構(gòu)~微服務(wù)

    摘要:接下來繼續(xù)介紹三種架構(gòu)模式,分別是查詢分離模式微服務(wù)模式多級緩存模式。分布式應(yīng)用程序可以基于實現(xiàn)諸如數(shù)據(jù)發(fā)布訂閱負(fù)載均衡命名服務(wù)分布式協(xié)調(diào)通知集群管理選舉分布式鎖和分布式隊列等功能。 SpringCloud 分布式配置 SpringCloud 分布式配置 史上最簡單的 SpringCloud 教程 | 第九篇: 服務(wù)鏈路追蹤 (Spring Cloud Sleuth) 史上最簡單的 S...

    xinhaip 評論0 收藏0
  • 微服務(wù)實戰(zhàn):從架構(gòu)到發(fā)布(二)

    摘要:微服務(wù)架構(gòu)著重培養(yǎng)通用可重用的服務(wù)。服務(wù)注冊和發(fā)現(xiàn)微服務(wù)架構(gòu)下,有大量的微服務(wù)需要處理。網(wǎng)關(guān)也是獲得微服務(wù)狀態(tài)監(jiān)控信息的中心。實際情況是,微服務(wù)和其它企業(yè)架構(gòu)并存。 引言:上篇文章介紹了微服務(wù)和單體架構(gòu)的區(qū)別、微服務(wù)的設(shè)計、消息、服務(wù)間通信、數(shù)據(jù)去中心化,本篇會繼續(xù)深入微服務(wù),介紹其它特性。 治理去中心化 通常治理的意思是構(gòu)建方案,并且迫使人們通過努力達(dá)到組織的目標(biāo)。SOA治理指導(dǎo)開發(fā)...

    JinB 評論0 收藏0
  • 微服務(wù)實戰(zhàn):從架構(gòu)到發(fā)布(二)

    摘要:微服務(wù)架構(gòu)著重培養(yǎng)通用可重用的服務(wù)。服務(wù)注冊和發(fā)現(xiàn)微服務(wù)架構(gòu)下,有大量的微服務(wù)需要處理。網(wǎng)關(guān)也是獲得微服務(wù)狀態(tài)監(jiān)控信息的中心。實際情況是,微服務(wù)和其它企業(yè)架構(gòu)并存。 引言:上篇文章介紹了微服務(wù)和單體架構(gòu)的區(qū)別、微服務(wù)的設(shè)計、消息、服務(wù)間通信、數(shù)據(jù)去中心化,本篇會繼續(xù)深入微服務(wù),介紹其它特性。 治理去中心化 通常治理的意思是構(gòu)建方案,并且迫使人們通過努力達(dá)到組織的目標(biāo)。SOA治理指導(dǎo)開發(fā)...

    zhaot 評論0 收藏0
  • 微服務(wù)實戰(zhàn):從架構(gòu)到發(fā)布(二)

    摘要:微服務(wù)架構(gòu)著重培養(yǎng)通用可重用的服務(wù)。服務(wù)注冊和發(fā)現(xiàn)微服務(wù)架構(gòu)下,有大量的微服務(wù)需要處理。網(wǎng)關(guān)也是獲得微服務(wù)狀態(tài)監(jiān)控信息的中心。實際情況是,微服務(wù)和其它企業(yè)架構(gòu)并存。 引言:上篇文章介紹了微服務(wù)和單體架構(gòu)的區(qū)別、微服務(wù)的設(shè)計、消息、服務(wù)間通信、數(shù)據(jù)去中心化,本篇會繼續(xù)深入微服務(wù),介紹其它特性。 治理去中心化 通常治理的意思是構(gòu)建方案,并且迫使人們通過努力達(dá)到組織的目標(biāo)。SOA治理指導(dǎo)開發(fā)...

    sf190404 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<