介面交互鑑權以及資料處理
總言:一般只要是 2端(呼叫方和被呼叫方)分離的 ,無論是後端對後端 還是前端對後端 或者終端對後端 正常的介面都需要有個鑑權,資料加解的過程
1.身份識別符號
1.1.token方式鑑權 token作為身份識別符號,
備註:一般程式會有登陸模組,或者身份認證模組 ,呼叫認證介面 介面提供方 向 呼叫方下發token 作為身份識別符號,後續需要鑑權介面帶上token,以此為憑證依據;token 有一定的生命週期(有效期) ,和具體的或者獨有的生成規則( token 生成有獨立的規則 可以帶上特殊因子
- 被動 續期 :呼叫方在呼叫介面時候, 介面自動延長使用時間 例如: 10點30分呼叫介面,token有效期會自動後延續30分鐘
- 主動 續期 :介面提供方不自動處理憑證(token)續期,比如請求登陸介面時 介面下發的token 會限制有效期 或者 將有效期 連帶一起下發;呼叫方拿到token 和 有效期 ,然後 根據時間,在有效期內 呼叫提供的續期介面 ,介面提供方通過續期介面 如果續期介面產生的token發生變化事(續期下發的新token 可以 與之前 token一致也可以不一致),後端需要做兼 處理,保證新舊token在特定時間內同時有效。(如果程式設定了加密證書,當加密證書有更新時,同理需要提供更新介面,保證新舊並存時間)
- 使用次數 :一般特殊介面 憑證只需要用到少量的次數或者只是單次使用,可以進行標識使用次數控制。
1.2 固定id (key) 或者openid識別符號 作為身份識別符號號
備註:固定標識比較長見 ,比如介面提供方為所有需要的呼叫方 每一個分配一個獨立的 識別符號號和 一個加密串
介面提供方以特殊的方式將加密串提供給呼叫方; 例如 商定的key 為123,請求方將 請求的引數 進行特殊 組合之後與key進行混合 產生 sign ,介面提供方根據sign鑑權(比如 將請求引數 拼接成字串 加個key MD5 或者sha1等 產生sign值介面提供方用同樣方式進行sign比對是否一致)
2.資料的加密
2.1key 或 證書
一般會用到 類似 sha1 sha256 MD5 base64 aes rsa rsa256 等
- 例子1:分配獨有的key 用設定的規則產生sign值進行校驗
- 例子2:分配獨有的key 用特定的方式對資料進行aes加密 保證請求的資料 除部分公開資料外返回的全部都是祕文或者二進位制資料,常用的方式是採用 pkcs 的規則 或者特殊的固定計算
- 例子3: 產生公鑰私鑰 採用rsa 方式進行處理
2.2 證書的型別
一般常見的證書格式有 ca證書 pfx ,cer ,pem等。一般openssl各種格式都可以相互轉換,
另外各個開發語言之間用到的格式可能會有差異