更新时间:2023-12-13 GMT+08:00

签名密钥策略说明

签名密钥用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。

签名密钥由一对Key和Secret组成,签名密钥需要绑定到API才能生效。当签名密钥绑定API后,API网关向后端服务发送此API的请求时,会增加相应的签名信息,此时需要后端服务依照同样方式进行签名,通过比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。

使用限制

同一个环境中一个API只能绑定一个签名密钥,一个签名密钥可以绑定多个API。

使用流程

图1 签名密钥流程图
  1. 在控制台创建签名密钥。
  2. 将新创建的签名密钥绑定API。
  3. API网关将签名后的请求发送到后端服务,此时Authorization头中包含签名信息。后端服务通过不同的开发语言(例如Java、Go、Python、JavaScript、C#、PHP、C++、C等)进行签名,通过比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。

配置参数说明

表1 配置参数说明

信息项

描述

密钥名称

自定义名称,用于识别不同的密钥。

类型

选择签名密钥的认证类型,可选择“HMAC”、“Basic Auth”、“AES”。

签名算法

选择aes的签名算法,包含以下两种:

  • aes-128-cfb
  • aes-256-cfb

Key

根据选择的密钥类型,填写不同的密钥信息。

  • HMAC:填写APP认证所使用密钥对的Key。
  • Basic Auth:填写basic认证所使用的用户名。
  • aes:填写aes认证所使用的密钥key。
  • Public Key:填写public_key认证所使用的公钥。

Secret

根据选择的密钥类型,填写不同的密钥信息。

  • HMAC:填写APP认证所使用密钥对的Secret。
  • Basic Auth:填写basic认证所使用的密码。
  • aes:填写aes认证所使用的向量。
  • Public Key:填写Public Key认证所使用的私钥。

确认Secret

填写与Secret一致的值。

验证签名结果

参考《API网关开发指南》的“对后端服务进行签名”章节对后端服务进行签名,比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。