API网关开发指南
使用场景
API网关主要涉及以下开发场景:
- API调用认证开发:
- 使用APP认证(签名认证)调用API:API调用者通过API网关提供Key、Secret和SDK,对API请求进行签名认证。
- 使用IAM认证(Token认证)调用API:API调用者先获取云服务平台的认证Token,然后把认证Token携带到API请求中。
- 使用IAM认证(AK/SK认证)调用API:API调用者通过AK(Access KeyID)/SK(Secret Access Key)和API网关提供的SDK,对API请求进行签名处理。
- 后端服务签名校验开发:若API在API网关上绑定了签名密钥,则API网关向该API的后端服务发送请求时会携带相应的签名信息。该API的后端服务需要集成API网关提供的SDK,并对请求中的签名信息进行校验。
使用APP认证调用API
认证前准备
- 获取API的请求信息(域名、请求路径、请求方法)。
- 确认API已发布到环境。
- 获取API的认证信息(Key和Secret)。
APP认证工作原理
- 构造规范请求。
- 使用规范请求和其他信息创建待签字符串。
- 使用AK/SK和待签字符串计算签名。
- 将生成的签名信息作为请求消息头添加到HTTP请求中。
- API网关收到请求后,执行1~3,计算签名。
- 将3中的生成的签名与5中生成的签名进行比较,如果签名匹配,则处理请求,否则将拒绝请求。
支持的语言和示例
指南提供了Java、Go、Python、C#、JavaScript、PHP、C++、C、Android等多种语言的SDK和示例代码,帮助开发者实现APP认证调用API。
使用IAM认证调用API
Token认证
- 获取用户Token,并将其设置到调用请求的“X-Auth-Token”头域中。
AK/SK认证
- 使用AK(Access KeyID)、SK(Secret Access Key)对请求进行签名。
- 生成签名的方式和APP认证相同,用AK代替APP认证中的AppKey,SK替换APP认证中的AppSecret,即可完成签名和请求。
- 推荐使用V11算法进行签名认证,指南提供了多种语言的Demo代码。
对后端服务进行签名
签名前准备
支持的语言和示例
指南提供了Java、Python、C#等多种语言的SDK和示例代码,帮助开发者实现后端服务签名校验。
校验流程
- 解析Authorization头,得到signingKey和signedHeaders。
- 通过signingKey找到signingSecret,如果不存在signingKey,则返回认证失败。
- 新建一个Request对象,将请求method、url、query、signedHeaders对应的请求头放入其中。
- 校验签名是否过期。
- 调用verify方法校验请求签名,如果校验通过,则执行下一个filter,否则返回认证失败。