操作場景
簽名密鑰用于后端服務驗證API網關的身份,在API網關請求后端服務時,保障后端服務的安全。
簽名密鑰是由一對Key和Secret組成,簽名密鑰需要綁定到API才能生效。當簽名密鑰綁定API后,API網關向后端服務發送此API的請求時,會增加相應的簽名信息,此時需要后端服務依照同樣方式進行簽名,通過比對簽名結果和API網關傳過來的Authorization頭中簽名是否一致來校驗API的合法性。
說明
?每個用戶最多創建30個簽名密鑰。
?同一個環境中一個API只能被一個簽名密鑰綁定,一個簽名密鑰可以綁定多個API。
使用流程
- 在控制臺創建簽名密鑰。
- 將新創建的簽名密鑰綁定API。
- API網關將簽名后的請求發送到后端服務,此時Authorization頭中包含簽名信息。后端服務通過不同的開發語言(例如Java、Go、Python、JavaScript、C#、PHP、C++、C、Android等)進行簽名,比對簽名結果和API網關傳過來的Authorization頭中簽名是否一致來校驗API的合法性。
圖 簽名密鑰流程圖

創建簽名密鑰
步驟 1 進入API網關控制臺頁面。
步驟 2 根據實際業務在左側導航欄上方選擇實例。
步驟 3 在左側導航欄選擇“API管理 > API策略”。
步驟 4 在“策略管理”頁面,單擊“創建策略”。
步驟 5 選擇策略類型,單擊“簽名密鑰”,彈出“創建密鑰”對話框。
步驟 6 填寫如表 所示信息。
表 密鑰信息
信息項 描述 密鑰名稱
自定義名稱,用于識別不同的密鑰。
類型
選擇簽名密鑰的認證類型,可選擇“HMAC”、“Basic ? Auth”、“AES”。
簽名算法
選擇aes的簽名算法,包含以下兩種:
l? ? aes-128-cfb
l? ? aes-256-cfb
Key
根據選擇的密鑰類型,填寫不同的密鑰信息。
l? ? HMAC:填寫APP認證所使用密鑰對的Key。
l? ? Basic Auth:填寫basic認證所使用的用戶名。
l? ? aes:填寫aes認證所使用的密鑰key。
l? ? Public Key:填寫public_key認證所使用的公鑰。
Secret
根據選擇的密鑰類型,填寫不同的密鑰信息。
l? ? HMAC:填寫APP認證所使用密鑰對的Secret。
l? ? Basic Auth:填寫basic認證所使用的密碼。
l? ? aes:填寫aes認證所使用的向量。
l? ? Public Key:填寫Public Key認證所使用的私鑰。
確認Secret
填寫與Secret一致的值。
步驟 7 單擊“確定”,完成密鑰的創建。
綁定API
步驟 1 在策略管理頁面,選擇“簽名密鑰”,進入簽名密鑰管理信息頁面。
步驟 2 通過以下任意一種方法,查看簽名密鑰已綁定API列表頁面。
- 在待綁定API的密鑰所在行,單擊“綁定API”,進入“簽名密鑰綁定API”頁面。
- 單擊待綁定API的密鑰名稱,進入密鑰詳情頁面。
步驟 3 單擊“綁定API”,彈出“綁定API”對話框。
步驟 4 選擇“API分組”、“環境”以及“API名稱”,篩選所需的API。
步驟 5 勾選API,單擊“綁定”,完成密鑰綁定API。
說明在簽名密鑰綁定API后,如果API不再需要此密鑰,單擊“解除”,解除綁定。
驗證簽名結果
對后端服務進行簽名,比對簽名結果和API網關傳過來的Authorization頭中簽名是否一致來校驗API的合法性。