创建签名密钥
功能介绍
为了保护API的安全性,建议租户为API的访问提供一套保护机制,即租户开放的API,需要对请求来源进行认证,不符合认证的请求直接拒绝访问。
其中,签名密钥就是API安全保护机制的一种。
租户创建一个签名密钥,并将签名密钥与API进行绑定,则API网关在请求这个API时,就会使用绑定的签名密钥对请求参数进行数据加密,生成签名。当租户的后端服务收到请求时,可以校验这个签名,如果签名校验不通过,则该请求不是API网关发出的请求,租户可以拒绝这个请求,从而保证API的安全性,避免API被未知来源的请求攻击。
URI
HTTP/HTTPS请求方法以及URI如下表所示
请求方法 |
URI |
---|---|
POST |
/v1/{project_id}/apigw/instances/{instance_id}/signs |
URI中的参数说明如下表所示。
名称 |
是否必选 |
类型 |
说明 |
---|---|---|---|
project_id |
是 |
String |
项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 |
instance_id |
是 |
String |
实例ID,可从API网关控制台的专享版实例信息中获取。 |
请求消息
参数 |
是否必选 |
类型 |
说明 |
---|---|---|---|
name |
是 |
String |
签名密钥的名称。 支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3 ~ 64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
sign_key |
否 |
String |
签名密钥的key。 支持英文,数字,下划线,中划线,且只能以数字或英文字母开头,8 ~ 32字符。 未填写时后台自动生成。 |
sign_secret |
否 |
String |
签名密钥的密钥。 支持英文,数字,下划线,中划线,!,@,#,$,%,且只能以数字或英文字母开头,16 ~ 64字符。 未填写时后台自动生成。 |
请求消息样例:
{ "name": "signature01", "sign_key": "abcd_123", "sign_secret": "******" }
响应消息
参数 |
类型 |
说明 |
---|---|---|
id |
String |
签名密钥的编号 |
name |
String |
签名密钥的名称 |
sign_key |
String |
签名密钥的key |
sign_secret |
String |
签名密钥的密钥 |
create_time |
Timestamp |
创建时间 |
update_time |
Timestamp |
更新时间 |
响应消息样例:
{ "name": "signature01", "sign_key": "abcd_123", "sign_secret": "******", "id": "3a793b65a9034bdfae08924f149bfb4a", "create_time": "2018-02-06T12:17:36.039953112Z", "update_time": "2018-02-06T12:17:36.039954198Z" }
状态码
状态码 |
说明 |
---|---|
201 |
Created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
500 |
Server Internal Error |