Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2025-12-22 GMT+08:00

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

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

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

String

ID de gateway, que se puede obtener de la información de gateway en la consola de APIG.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

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.

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

sign_id

String

ID de clave de firma.

publish_ids

Array of strings

ID de registro de publicación de API.

Parámetros de respuesta

Código de estado: 201

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

bindings

Array of SignApiBindingInfo objects

Las API vinculadas a la clave de firma.

Tabla 5 SignApiBindingInfo

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.

  • hmac: El valor contiene de 8 a 32 caracteres, incluidas letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente una clave.

  • basic: El valor contiene de 4 a 32 caracteres, incluidos letras, dígitos, guiones bajos (_), y guiones (-). Debe comenzar con una letra. Si no se especifica, se genera automáticamente una clave.

  • public_key: El valor contiene de 8 a 512 caracteres, incluidos letras, dígitos y caracteres especiales (_-+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

  • aes: El valor contiene 16 caracteres si se utiliza el algoritmo aes-128-cfb o 32 caracteres si se utiliza el algoritmo aes-256-cfb. Se permiten letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente una clave.

sign_secret

String

Secreto de firma.

  • hmac: El valor contiene de 16 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente un valor.

  • basic: El valor contiene de 8 a 64 caracteres. Se permiten letras, dígitos y caracteres especiales (_-!@#$%). Debe comenzar con una letra o un dígito. Si no se especifica, se genera automáticamente un valor.

  • public_key: el valor contiene de 15 a 2048 caracteres, incluidas letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente un valor.

  • aes: El valor contiene 16 caracteres, incluidas letras, dígitos y caracteres especiales (_-!@#$%+/=). Debe comenzar con una letra, dígito, signo más (+) o barra inclinada (/). Si no se especifica, se genera automáticamente un valor.

sign_type

String

Tipo de clave de firma:

  • hmac

    -basic

    -public_key

    -aes

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

Tabla 6 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 401

Tabla 7 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 403

Tabla 8 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 404

Tabla 9 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 500

Tabla 10 Parámetros del cuerpo de respuesta

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.