国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

API網關設計(一)之Token多平臺身份認證方案

leon / 3286人閱讀

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

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

今天咱們面對移動互聯網的發展,系統一般是多個客戶端對應一個服務端。
客戶端統一通過F5或者Nginx代理轉發到API網關,最后發送到服務API。
如下圖架構圖所示

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

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

權限認證(當然是認證用戶身份之后,確認是否有權限調用API)

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

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

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

Token設計

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

認證場景

客戶端以下幾點用戶認證的場景

移動端登陸,會話API調用

web端登陸,會話API調用

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

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

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

客戶端記住用戶密碼免登陸認證

API調用的會話級別認證

移動端已登陸授權web端免密登陸

Token設計要點

通過上面的認證場景才能不難得出如下結論

多層級Token

Token之間可向下授權

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認證token 1(短暫認證) 3 秒級 2 1

再具體看一張token層級架構圖

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

用戶名和密碼認證獲取webtoken或者mobiletoken

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

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

通過accesstoken可以調用API

層級token優勢

通過上面咱們可以看出來最終調用api是通過accesstoken,那么咱們為什么還需要設計
多層token了?主要有以下幾個原因

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

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

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

綜合上面可以總結出來的優勢有如下幾點

解耦系統 (accesstoken網關之后的系統可以任意部署)

提高系統擴展性(可以接入不同性質的客戶端)

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

token安全控制

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

使用https哪怕被抓包看到的也是加密數據,除非客戶端和服務端都被黑了。這尼瑪這人這么優秀,干點啥不好。。。

根據業務要求設置不同token失效時間,token失效時間越短越安全,用戶體驗也會有所下滑

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

移動端可以獲取設備id以及ip,當短時間內出現同一賬號不同設備請求,及時失效所有token,或者發出告警短信給用戶,權限級別較高的操作禁用。

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

完整架構圖

歡迎掃碼關注公眾號繼續討論

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73726.html

相關文章

  • 論微服務安全

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

    plokmju88 評論0 收藏0
  • 架構~微服務

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

    xinhaip 評論0 收藏0
  • 微服務實戰:從架構到發布(二)

    摘要:微服務架構著重培養通用可重用的服務。服務注冊和發現微服務架構下,有大量的微服務需要處理。網關也是獲得微服務狀態監控信息的中心。實際情況是,微服務和其它企業架構并存。 引言:上篇文章介紹了微服務和單體架構的區別、微服務的設計、消息、服務間通信、數據去中心化,本篇會繼續深入微服務,介紹其它特性。 治理去中心化 通常治理的意思是構建方案,并且迫使人們通過努力達到組織的目標。SOA治理指導開發...

    JinB 評論0 收藏0
  • 微服務實戰:從架構到發布(二)

    摘要:微服務架構著重培養通用可重用的服務。服務注冊和發現微服務架構下,有大量的微服務需要處理。網關也是獲得微服務狀態監控信息的中心。實際情況是,微服務和其它企業架構并存。 引言:上篇文章介紹了微服務和單體架構的區別、微服務的設計、消息、服務間通信、數據去中心化,本篇會繼續深入微服務,介紹其它特性。 治理去中心化 通常治理的意思是構建方案,并且迫使人們通過努力達到組織的目標。SOA治理指導開發...

    zhaot 評論0 收藏0
  • 微服務實戰:從架構到發布(二)

    摘要:微服務架構著重培養通用可重用的服務。服務注冊和發現微服務架構下,有大量的微服務需要處理。網關也是獲得微服務狀態監控信息的中心。實際情況是,微服務和其它企業架構并存。 引言:上篇文章介紹了微服務和單體架構的區別、微服務的設計、消息、服務間通信、數據去中心化,本篇會繼續深入微服務,介紹其它特性。 治理去中心化 通常治理的意思是構建方案,并且迫使人們通過努力達到組織的目標。SOA治理指導開發...

    sf190404 評論0 收藏0

發表評論

0條評論

leon

|高級講師

TA的文章

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