Vinculación de una clave de firma
Función
Una clave de firma solo tiene efecto después de estar enlazada a una API.
Al solicitar el servicio de backend, APIG utiliza la clave de firma para firmar solicitudes criptográficamente. El servicio backend verifica la firma para identificar las fuentes de solicitud.
Esta API se utiliza para vincular una clave de firma a una o más API publicadas. Puede vincular diferentes claves de firma a una API en diferentes entornos, pero solo puede vincular una clave de firma a la API en cada entorno.
Método de invocación
Para obtener más información, véase invocación de API.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
project_id |
Sí |
String |
ID del proyecto. Para obtener más información sobre cómo obtenerlo, véase Obtención de un ID de proyecto. |
|
instance_id |
Sí |
String |
ID de gateway, que se puede obtener de la información de gateway en la consola de APIG. |
Parámetros de solicitud
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
X-Auth-Token |
Sí |
String |
Token de usuario. Se puede obtener invocando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
sign_id |
Sí |
String |
ID de clave de firma. |
|
publish_ids |
Sí |
Array of strings |
ID de registro de publicación de API. |
Parámetros de respuesta
Código de estado: 201
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
bindings |
Array of SignApiBindingInfo objects |
Las API vinculadas a la clave de firma. |
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
publish_id |
String |
ID de registro de publicación de API. |
|
api_id |
String |
ID de API. |
|
group_name |
String |
Nombre del grupo de API al que pertenece la API. |
|
binding_time |
String |
Hora de vinculación. |
|
env_id |
String |
ID del entorno en el que se ha publicado la API. |
|
env_name |
String |
Nombre del entorno en el que se ha publicado la API. |
|
api_type |
Integer |
Tipo de la API. |
|
api_name |
String |
Nombre de la API. |
|
id |
String |
ID de registro de vinculación. |
|
api_remark |
String |
Descripción de API. |
|
sign_id |
String |
ID de clave de firma. |
|
sign_name |
String |
Nombre de clave de firma. Puede contener de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_). |
|
req_method |
String |
Método de solicitud. |
|
tags |
Matriz de cadenas |
Etiquetas vinculadas a la API. La cuota predeterminada es 10. Póngase en contacto con el soporte técnico para ajustar la cuota. Mínimo: 1 Máximo: 128 Longitud del arreglo: 0 - 10 |
|
sign_key |
String |
Clave de firma.
|
|
sign_secret |
String |
Secreto de firma.
|
|
sign_type |
String |
Tipo de clave de firma:
Para utilizar una clave de firma básica, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway. Para usar una clave de firma de public_key, asegúrese de que la función public_key se haya configurado para su gateway. Para obtener más información, consulte "Apéndice" > "Características compatibles". Si su gateway no admite esta función, póngase en contacto con el soporte técnico para habilitarla. Para utilizar una clave de firma AES, asegúrese de que la versión del gateway la admita. Si el gateway no admite este tipo de clave de firma, póngase en contacto con el soporte técnico para actualizar su gateway. |
Código de estado: 400
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Mensaje de error. |
Código de estado: 401
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Mensaje de error. |
Código de estado: 403
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Mensaje de error. |
Código de estado: 404
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Mensaje de error. |
Código de estado: 500
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Mensaje de error. |
Ejemplo de las solicitudes
Enlace de una clave de firma a una API publicada
{
"sign_id" : "0b0e8f456b8742218af75f945307173c",
"publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ]
}
Ejemplo de respuestas
Código de estado: 201
Creado
{
"bindings" : [ {
"api_id" : "5f918d104dc84480a75166ba99efff21",
"sign_secret" : "dc0************2b3",
"group_name" : "api_group_001",
"sign_id" : "0b0e8f456b8742218af75f945307173c",
"sign_key" : "a071a20d460a4f639a636c3d7e3d8163",
"binding_time" : "2020-08-03T04:00:11.638167852Z",
"env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
"env_name" : "RELEASE",
"sign_name" : "signature_demo",
"api_type" : 1,
"api_name" : "Api_http",
"id" : "25082bd52f74442bb1d273993d567938",
"api_remark" : "Web backend API"
} ]
}
Código de estado: 400
Error en la solicitud
{
"error_code" : "APIG.2012",
"error_msg" : "Invalid parameter value,parameterName:sign_id. Please refer to the support documentation"
}
Código de estado: 401
Sin autorización
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
}
Código de estado: 403
Prohibido
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
}
Código de estado: 404
No se ha encontrado
{
"error_code" : "APIG.3017",
"error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist"
}
Código de estado: 500
Error del servidor interno
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
}
Códigos de estado
|
Código de estado |
Descripción |
|---|---|
|
201 |
Creado |
|
400 |
Error en la solicitud |
|
401 |
Sin autorización |
|
403 |
Prohibido |
|
404 |
No se ha encontrado |
|
500 |
Error del servidor interno |
Códigos de error
Consulte Códigos de error.