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 fuentes de solicitud de API y denegar el acceso de fuentes no autorizadas.
Una clave de firma es un mecanismo de protección en el caso.
Cree una clave de firma y vincúlela 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.
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}/signs
|
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 |
|---|---|---|---|
|
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 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. |
|
sign_key |
No |
String |
Clave de firma.
|
|
sign_secret |
No |
String |
Secreto de firma.
|
|
sign_algorithm |
No |
String |
Algoritmo de firma. Especifique un algoritmo de firma solo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo. |
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 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. |
|
sign_key |
String |
Clave de firma.
|
|
sign_secret |
String |
Secreto de firma.
|
|
sign_algorithm |
String |
Algoritmo de firma. Especifique un algoritmo de firma solo cuando utilice una clave de firma AES. Por defecto, no se utiliza ningún algoritmo. |
|
update_time |
String |
Tiempo de actualización. |
|
create_time |
String |
Tiempo 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: 404
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Descripción de error. |
Código de estado: 412
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error. |
|
error_msg |
String |
Descripción 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
Cree una clave de firma con una clave personalizada y un secreto.
{
"name" : "signature_demo",
"sign_key" : "signkeysignkey",
"sign_secret" : "sig************ret"
}
Ejemplo de respuestas
Código de estado: 201
Creado
{
"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"
}
Código de estado: 400
Error en la solicitud
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:name. 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.3030",
"error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}
Código de estado: 412
PreconditionFailed
{
"error_code" : "APIG.3548",
"error_msg" : "sign_type=public_key not supported by instance 6a29d4e9-69a0-412a-aabe-9898ec0903b0"
}
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 |
|
412 |
PreconditionFailed |
|
500 |
Error del servidor interno |
Códigos de error
Consulte Códigos de error.