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 2023-03-29 GMT+08:00

Vinculación de una clave de firma

Función

Una clave de firma solo tiene efecto después de estar vinculada a una API. Al solicitar el servicio de backend, APIG usa la clave de firma para firmar solicitudes criptográficamente. El servicio de 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.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings

Tabla 1 Parámetros de path

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener detalles sobre cómo obtener un ID de proyecto, consulte "Apéndice" > "Obtención de un ID de proyecto" en este documento.

instance_id

String

Gateway ID, que se puede obtener de la información de gateway en la consola 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 llamando 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 de body 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 de body de respuesta

Parámetro

Tipo

Descripción

bindings

Array of SignApiBindingInfo objects

API enlazadas 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 API.

api_name

String

Nombre de API.

id

String

ID de registro de vinculación.

api_remark

String

Descripción de la API.

sign_id

String

ID de clave de firma.

sign_name

String

Nombre de clave de firma. Puede contener de 3 a 64 caracteres, empezando por una letra. Solo se permiten letras, dígitos y guiones bajos (_).

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 un valor.

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

  • public_key: El valor contiene de 8 a 512 caracteres, incluyendo 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 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 (_-!@#$%+/=). El valor debe comenzar con una letra, un dígito, un signo más (+) o una barra inclinada (/). Si no se especifica, se genera automáticamente un valor.

sign_secret

String

Firma secreta.

  • hmac: el valor contiene entre 16 y 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.

Valores de enumeración:

  • hmac

  • basic

  • public_key

  • aes

Código de estado: 400

Tabla 6 Parámetros de body 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 de body 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 de body 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 de body 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 de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Solicitudes de ejemplo

{
  "sign_id" : "0b0e8f456b8742218af75f945307173c",
  "publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ]
}

Ejemplo de respuestas

Código de estado: 201

Created

{
  "bindings" : [ {
    "api_id" : "5f918d104dc84480a75166ba99efff21",
    "sign_secret" : "dc02fc5f30714d6bb21888389419e2b3",
    "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

Bad Request

{
  "error_code" : "APIG.2012",
  "error_msg" : "Invalid parameter value,parameterName:sign_id. Please refer to the support documentation"
}

Código de estado: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Código de estado: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Código de estado: 404

Not Found

{
  "error_code" : "APIG.3017",
  "error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist"
}

Código de estado: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Códigos de estado

Código de estado

Descripción

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Códigos de error

Consulte Códigos de error.