创建签名密钥 - CreateSignatureKeyV2
功能介绍
为了保护API的安全性,建议租户为API的访问提供一套保护机制,即租户开放的API,需要对请求来源进行认证,不符合认证的请求直接拒绝访问。其中,签名密钥就是API安全保护机制的一种。租户创建一个签名密钥,并将签名密钥与API进行绑定,则服务集成在请求这个API时,就会使用绑定的签名密钥对请求参数进行数据加密,生成签名。当租户的后端服务收到请求时,可以校验这个签名,如果签名校验不通过,则该请求不是服务集成发出的请求,租户可以拒绝这个请求,从而保证API的安全性,避免API被未知来源的请求攻击。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。
URI
POST /v2/{project_id}/apic/instances/{instance_id}/signs
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
项目ID,获取方式请参见API参考的“附录 > 获取项目ID”章节。 |
|
instance_id |
是 |
String |
实例ID |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
name |
是 |
String |
签名密钥的名称。支持汉字,英文,数字,下划线,且只能以英文和汉字开头。
说明:
中文字符必须为UTF-8或者unicode编码。
|
|
sign_type |
否 |
String |
签名密钥类型:
basic和aes类型需要实例升级到对应版本,若不存在可联系技术工程师升级。 public_key类型开启实例配置public_key才可使用,实例特性配置详情请参考“附录 > 实例支持的APIC特性”,如确认实例不存在public_key配置可联系技术工程师开启。 |
|
sign_key |
否 |
String |
签名密钥的key。
|
|
sign_secret |
否 |
String |
签名密钥的密钥。
|
|
sign_algorithm |
否 |
String |
签名算法。默认值为空,仅aes类型签名密钥支持选择签名算法,其他类型签名密钥不支持签名算法。 |
响应参数
状态码:201
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
name |
String |
签名密钥的名称。支持汉字,英文,数字,下划线,且只能以英文和汉字开头。
说明:
中文字符必须为UTF-8或者unicode编码。
|
|
sign_type |
String |
签名密钥类型:
basic和aes类型需要实例升级到对应版本,若不存在可联系技术工程师升级。 public_key类型开启实例配置public_key才可使用,实例特性配置详情请参考“附录 > 实例支持的APIC特性”,如确认实例不存在public_key配置可联系技术工程师开启。 |
|
sign_key |
String |
签名密钥的key。
|
|
sign_secret |
String |
签名密钥的密钥。
|
|
sign_algorithm |
String |
签名算法。默认值为空,仅aes类型签名密钥支持选择签名算法,其他类型签名密钥不支持签名算法。 |
|
update_time |
String |
更新时间 |
|
create_time |
String |
创建时间 |
|
id |
String |
签名密钥的编号 |
状态码:400
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
状态码:401
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
状态码:403
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
状态码:404
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
状态码:412
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
状态码:500
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码 |
|
error_msg |
String |
错误描述 |
请求示例
创建一个签名密钥,签名密钥类型使用默认
{
"name" : "signature_demo",
"sign_key" : "signkeysignkey",
"sign_secret" : "sig**********ret"
}
响应示例
状态码:201
Created
{
"sign_secret" : "sig**********ret",
"update_time" : "2020-08-03T03:39:38.119032888Z",
"create_time" : "2020-08-03T03:39:38.119032659Z",
"name" : "signature_demo",
"id" : "0b0e8f456b8742218af75f945307173c",
"sign_key" : "signkeysignkey",
"sign_type" : "hmac"
}
状态码:400
Bad Request
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation"
}
状态码:401
Unauthorized
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
}
状态码:403
Forbidden
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
}
状态码:404
Not Found
{
"error_code" : "APIG.3030",
"error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}
状态码:412
PreconditionFailed
{
"error_code" : "APIG.3548",
"error_msg" : "sign_type=public_key not supported by instance 6a29d4e9-69a0-412a-aabe-9898ec0903b0"
}
状态码:500
Internal Server Error
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
}
状态码
|
状态码 |
描述 |
|---|---|
|
201 |
Created |
|
400 |
Bad Request |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
|
412 |
PreconditionFailed |
|
500 |
Internal Server Error |
错误码
请参见错误码。