国产又a又黄又潮娇喘视频|成年女性特黄午夜视频免费看|精品av天堂毛片久久久|久爱无码免费视频在线|久久精品国产99久久香蕉

全部/業(yè)內(nèi)動態(tài)/企業(yè)新聞/解決方案/成功案例/幫助文檔
xfarme 通用API 后端簽名說明文檔
發(fā)布日期:2024-12-12
后端簽名密鑰是由您創(chuàng)建的一對 Key 和 Secret,相當(dāng)于您給網(wǎng)關(guān)頒發(fā)了一個(gè)賬號密碼。開啟后端簽名后 ,API 網(wǎng)關(guān)向您后端服務(wù)請求時(shí)會使用這一對Key和Secret對請求內(nèi)容進(jìn)行加簽處理,您后端服務(wù)可以對網(wǎng)關(guān)發(fā)送過來的請求做對稱加簽計(jì)算,對比網(wǎng)關(guān)的簽名和服務(wù)器端計(jì)算的簽名是否一致就可以對網(wǎng)關(guān)做身份驗(yàn)證。
概述
創(chuàng)建簽名密鑰并將簽名密鑰綁定到 API 即可開啟后端簽名(請妥善保管此密鑰,API 網(wǎng)關(guān)會對密鑰進(jìn)行加密存儲來保障密鑰的安全性)。
創(chuàng)建密鑰時(shí)需要選擇 Region,Region 一旦選定不能更改,而且密鑰只能被綁定到同一個(gè) Region 下的API上。
一個(gè) API 僅能綁定一個(gè)密鑰,密鑰可以被替換和修改。
所有您定義的參數(shù)都會參與簽名,包括您錄入的業(yè)務(wù)參數(shù)、您定義的常量系統(tǒng)參數(shù)和 API 網(wǎng)關(guān)系統(tǒng)參數(shù)(如 CaClientIp 等)。
后端對 API 網(wǎng)關(guān)的簽名字符串校驗(yàn)后,如果校驗(yàn)失敗,建議返回 errorcode = 403;errormessage = “InvalidSignature”。
若您的后端服務(wù)為VPC環(huán)境,且通過內(nèi)網(wǎng)對接(VPC內(nèi)網(wǎng)訪問API網(wǎng)關(guān)),您無需使用后端簽名,通道自身是安全的。
讀取 API 網(wǎng)關(guān)簽名方法
網(wǎng)關(guān)計(jì)算的簽名保存在 Request 的 Header 中,Header 名稱:X-Ca-Proxy-Signature。
后端 HTTP 服務(wù)加簽方法
簽名計(jì)算的詳細(xì) demo(JAVA)請參照鏈接:https://github.com/aliyun/api-gateway-demo-sign-backend-java。
簽名計(jì)算方法步驟如下:
1. 組織參與加簽的數(shù)據(jù):
String stringToSign=
HTTPMethod + " " +         //Method全大寫
Content-MD5 + " " +        //Content-MD5 需要判斷是否為空,如果為空則跳過,但是為空也需要添加換行符 " "
Headers +                   //Headers 如果為空不需要添加" ",不為空的Headers中包含了" ",詳見下面組織Headers的描述
Url
2. 計(jì)算簽名:
Mac hmacSha256 = Mac.getInstance("HmacSHA256");
byte[] keyBytes = secret.getBytes("UTF-8");  //secret 為綁定到 API 上的簽名密鑰
hmacSha256.init(new SecretKeySpec(keyBytes, 0, keyBytes.length, "HmacSHA256"));
String sign = new String(Base64.encodeBase64(Sha256.doFinal(stringToSign.getBytes("UTF-8")),"UTF-8"));
補(bǔ)充說明
Content-MD5
Content-MD5 是指 Body 的 MD5 值,只有 HttpMethod 為 PUT 或者 POST 且 Body 為非 Form 表單時(shí)才計(jì)算 MD5,計(jì)算方式為:
String content-MD5 = Base64.encodeBase64(MD5(bodyStream.getbytes("UTF-8")));
Headers
Headers 指所有參與簽名計(jì)算的 Header的Key、Value。參與簽名計(jì)算的 Header 的 Key 從 Request Header 中讀取,Key為:"X-Ca-Proxy-Signature-Headers",多個(gè) Key 用英文逗號分割。
Headers 組織方法:
先對所有參與簽名計(jì)算的 Header 的 Key 按照字典排序,然后將 Header 的 Key 轉(zhuǎn)換成小寫后按照如下方式拼接:
String headers = HeaderKey1.toLowerCase() + ":" + HeaderValue1 +" "+
 HeaderKey2.toLowerCase() + ":" + HeaderValue2 +" "+
 ... +
HeaderKeyN.toLowerCase() + ":" + HeaderValueN + " "
Url
Url指 Path+Query+Body 中 Form 參數(shù),組織方法: 如果有 Query 或 Form 參數(shù)則加 ?,然后對 Query+Form 參數(shù)按照字典對 Key 進(jìn)行排序后按照如下方法拼接,如果沒有 Query 或 Form 參數(shù),則 Url = Path。
String url =
 Path +
 "?" +
 Key1 + "=" + Value1 
+ "&" + Key2 + "=" + Value2 +
 ... 
"&" + KeyN + "=" + ValueN
關(guān)鍵字:中農(nóng)物聯(lián),農(nóng)業(yè),數(shù)據(jù)中心,大數(shù)據(jù),平臺
吉林省中農(nóng)物聯(lián)科技有限公司
版權(quán)所有? 2015—20222
Powered By @winnto.com
吉ICP備—20003797號
聯(lián)系方式
業(yè)務(wù)電話:0431-81056111
公司地址:吉林省長春市寬城區(qū)裝備產(chǎn)業(yè)園A27
信用代碼:91220103MA14WNL2XJ
官方網(wǎng)站:www.sqbdfyy.cn
企業(yè)郵箱:i@ccniot.com
快速導(dǎo)航
資訊中心
產(chǎn)品中心
解決方案
客戶案例
? 控制臺
企業(yè)微信
公眾號