Creación de una clave de firma
Función
Es una buena práctica proporcionar un mecanismo de protección para que las API garanticen la seguridad del acceso. Por ejemplo, autenticar las fuentes de solicitud de API y denegar el acceso de fuentes no autorizadas.Una clave de firma es un mecanismo de protección en case.Crea una clave de firma y vincúlala a una API. Al solicitar la API, APIG utiliza la clave de firma para cifrar datos de parámetros de solicitud y generar una firma. El servicio de backend de la API verifica las solicitudes mediante la firma. Se denegarán las solicitudes no autorizadas para proteger la API contra ataques de fuentes desconocidas.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/signs
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
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 |
Sí |
String |
Gateway ID, que se puede obtener de la información de gateway en la consola APIG. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de clave de firma. Puede contener letras, dígitos y guiones bajos (_) y debe comenzar con una letra. Mínimo:3 Máximo: 64 |
sign_type |
No |
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 puerta de enlace. 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:
|
sign_key |
No |
String |
Clave de firma.
|
sign_secret |
No |
String |
Firma secreta.
|
sign_algorithm |
No |
String |
Algoritmo de firma. Especifique un algoritmo de firma sólo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo. Valores de enumeración:
|
Parámetros de respuesta
Código de estado: 201
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre de clave de firma. Puede contener letras, dígitos y guiones bajos (_) y debe comenzar con una letra. Mínimo: 3 Máximo: 64 |
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 puerta de enlace. 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:
|
sign_key |
String |
Clave de firma.
|
sign_secret |
String |
Firma secreta.
|
sign_algorithm |
String |
Algoritmo de firma. Especifique un algoritmo de firma sólo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo. Valores de enumeración:
|
update_time |
String |
Hora de actualización. |
create_time |
String |
Hora de creación. |
id |
String |
ID de clave de firma. |
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: 500
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Solicitudes de ejemplo
{ "name" : "signature_demo", "sign_key" : "signkeysignkey", "sign_secret" : "signsecretsignsecretsignsecretsignsecret" }
Ejemplo de respuestas
Código de estado: 201
Created
{ "sign_secret" : "signsecretsignsecretsignsecretsignsecret", "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" }
Código de estado: 400
Bad Request
{ "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. 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: 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 |
500 |
Internal Server Error |
Códigos de error
Consulte Códigos de error.