Api接口簽名設(shè)計(jì)
一、前言
? 傳統(tǒng)的接口是開(kāi)放的,但是容易被不法分子利用。由此對(duì)接口簽名設(shè)計(jì)的背景就是維護(hù)接口的安全性
二、設(shè)計(jì)原則
- 請(qǐng)求唯一性
- 請(qǐng)求時(shí)效性
- 請(qǐng)求可審計(jì)性
三、簽名規(guī)則
- 由
鑒權(quán)中心統(tǒng)一為調(diào)用方發(fā)放clientId和clientSecret(也可以是appId和appSecret) - 需要生成時(shí)間戳
timestamp(可以限制時(shí)效性) - 需要生成流水號(hào)
nonce(流水號(hào),可用后期安全審計(jì)) - 需要生成
signature(由clientId、clientSecret、timestamp、nonce混合加密,加密方法可自定)
四、請(qǐng)求規(guī)則
- 調(diào)用方維護(hù)好
clientId和clientSecret - 生成
timestamp和nonce - 由
clientId、clientSecret、timestamp、nonce加密生成signature - 將
clientId、timestamp、nonce和signature放在請(qǐng)求頭部 -
鑒權(quán)中心根據(jù)當(dāng)前時(shí)間戳與timestamp做比較,看是否過(guò)期 -
鑒權(quán)中心收到clientId之后,查詢(xún)出clientSecret,加上傳遞過(guò)來(lái)的timestamp和nonce,用同樣的加密方法加密,獲得的加密結(jié)果和signature對(duì)比,如果相同就表示成功