文档

使用简单认证(AppCode)方式调用API

更新时间:

阿里云API网关提供多种针对客户端请求的安全认证方式,包括阿里云APP认证方式、jwt插件、第三方鉴权等。对于”阿里云APP“这种认证方式,目前用户可以设置两种认证形式: 1. 签名认证; 2. 简单认证。

1.概述

对于请求的签名认证方式,可以参考这个文档:请求签名说明文档:使用摘要签名认证方式调用API

本文将详细描述简单认证方式的设置方式和调用方式。简单认证,顾名思义,和签名认证方式相比要简单很多,省去了复杂的生成签名的过程。简单认证方式直接使用API网关颁发的AppCode进行身份认证,调用者将AppCode放到请求头中,或者放到请求的Query参数中进行身份认证,实现快速调用API的能力。下面是对整个流程的描述:

  1. API提供者创建API的时候选择”阿里云APP“认证模式,且支持AppCode认证(所有云市场的API默认都支持AppCode);

  2. API调用者在API网关”应用管理“创建一个APP。云市场用户在云市场购买API时云市场会为您创建一个 APP;

  3. API提供者给调用者的APP进行API授权,具体授权方式请参考文档: 创建后端服务为HTTP的API

  4. API调用者到API网关控制台的”应用管理“找到AppCode/AppSecret进行签名认证的调用或者AppCode进行简单认证的API调用。

2. 创建支持简单认证方式API

  1. API提供者在创建API安全认证方式时需要选择”阿里云APP”;

  2. AppCode认证选项选择允许AppCode认证相关的几个选项;

下面解释下AppCode认证四个选项的含义进行详细解释:

  • 上架云市场后开启:默认不开启,如果上架API上架云市场,则支持将AppCode放在Header中进行认证;

  • 禁止AppCode认证:无论API是否上架云市场,都不开启,都需要使用签名方式调用;

  • 允许AppCode认证(Header):无论API是否上架云市场,都开启,但只支持将AppCode放在Header中进行认证;

  • 允许AppCode认证(Header & Query):无论API是否上架云市场,都开启,同时支持将AppCode放在Header中,或者将AppCode放在Query中进行认证;

注意:定义API参数的时候,不需要定义携带AppCode的头或者Header参数。

3. 调用方法

API提供者将API设置成允许AppCode调用之后,API调用者就可以使用简单认证方式进行调用了,不用再在客户端实现复杂的签名算法了。本章我们介绍下如何通过简单认证方式调用API。主要有两种方式,一种是将AppCode放在Header中进行调用,一种是将AppCode放在Query参数中进行调用。

3.1 将AppCode放在Header中

  • 请求Header中添加一个”Authorization“参数;

  • Authorization字段的值的格式为“APPCODE + 半角空格 +APPCODE值”。

格式:

Authorization:APPCODE AppCode值

示例:

Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301
重要

当后端服务为HTTP函数时,Authorization不会透传到后端服务,会被HTTP函数的Authorization覆盖,建议将AppCode放在Query中。

3.2 将AppCode放在Query中

  • 请求Query中添加的“AppCode”参数(同时支持”appcode” , “appCode” , “APPCODE” , “APPCode”四种写法);

  • “AppCode”参数的值为AppCode的值。

示例:

http://www.aliyum.com?AppCode=3F2504E04F8911D39A0C0305E82C3301

4.风险提示

简单认证方式调用非常省事,免去了复杂的签名过程,但是把AppCode作为明文暴露网络中传输,会带来一些安全隐患,务必重视:

客户端和API网关之间务必使用HTTPS进行通信,避免使用HTTP协议进行数据传输。因为简单认证方式,AppCode在传输过程中使用明文,而HTTP通信协议没有加密,一旦网络通信的网络包被黑客抓取,有非常大的丢失AppCode的风险。

  • 本页导读 (0)
文档反馈