创建签名密钥
功能介绍
为了保护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 |