天天看點

api授權與鑒權

架構圖

api授權與鑒權

時序圖

api授權與鑒權

appkey與appsercret

appkey與appsercret由服務提供方提供,接入方使用

appkey:随機數或指定
appsercret:随機數或指定
           

授權服務

授權服務主要提供令牌生成與發放,使用AES對稱加密token,該令牌可存儲{appname+8位随機數+ip位址+8位随機數},可通過擴充token,來擴充其它能力,

授權服務需要請求方提供appkey與appsercre,對其進行校驗(檢驗可包括但不限制于ip),檢驗後産生令牌傳回給調用方,格式如下:

token:{"code":0,"msg":"success","data":{"accessToken":"ddewfrff2fdcfsf2r4","expiresIn":3600}}

accessToken:為發放的令牌
expiresIn:令牌過期時間,機關為秒
           

隔離應用

請求通過SLB轉發到對應的api,通過擴充包,實作校驗與拒絕能力

擴充包

可通過過濾器或注解+aop實作(隔離應用通過spi加載),擷取token參數值,判斷redis中是否存在,解析token,判斷ip是目前請求ip

redis

redis主要是服務token存儲與預留擴充能力,比如api限流,黑白名單等能力

整體流程

  1. 三方請求授權服務,攜帶參數appkey與appsercret
  2. 授權服務校驗并存儲token,發放token給三方
  3. 三方請求隔離服務,攜帶token
  4. 隔離服務進行校驗,并響應請求

繼續閱讀