Criação de uma chave de assinatura
Função
É uma boa prática fornecer um mecanismo de proteção para APIs para garantir a segurança do acesso. Por exemplo, autenticar fontes de solicitação de API e negar o acesso de fontes não autorizadas. Uma chave de assinatura é um mecanismo de proteção no caso. Crie uma chave de assinatura e vincule-a a uma API. Ao solicitar a API, o APIG usa a chave de assinatura para criptografar os dados do parâmetro de solicitação e gerar uma assinatura. O serviço de back-end da API verifica as solicitações usando a assinatura. Solicitações não autorizadas serão negadas para proteger a API contra ataques de fontes desconhecidas.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/signs
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto. Para obter detalhes sobre como obter um ID de projeto, consulte "Apêndice" > "Obtenção de um ID de projeto" neste documento. |
instance_id |
Sim |
String |
ID do gateway, que pode ser obtido a partir das informações de gateway no console do APIG. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
String |
Nome da chave de assinatura. Ele pode conter letras, dígitos e sublinhados (_) e deve começar com uma letra. Mínimo: 3 Máximo: 64 |
sign_type |
Não |
String |
Tipo de chave de assinatura.
Para usar uma chave básica de assinatura, certifique-se de que sua versão de gateway a suporte. Se o gateway não suportar este tipo de chave de assinatura, contacte o suporte técnico para actualizar o gateway. Para usar uma chave de assinatura public_key, certifique-se de que o recurso public_key tenha sido configurado para o gateway. Para obter detalhes, consulte "Apêndice" > "Recursos suportados". Se o seu gateway não for compatível com esse recurso, entre em contato com o suporte técnico para habilitá-lo. Para usar uma chave de assinatura AES, certifique-se de que sua versão de gateway a suporte. Se o gateway não suportar este tipo de chave de assinatura, contacte o suporte técnico para actualizar o gateway. Valores de enumeração:
|
sign_key |
Não |
String |
Chave de assinatura.
|
sign_secret |
Não |
String |
Segredo de assinatura.
|
sign_algorithm |
Não |
String |
Algoritmo de assinatura. Especifique um algoritmo de assinatura somente ao usar uma chave de assinatura AES. Por padrão, nenhum algoritmo é usado. Valores de enumeração:
|
Parâmetros de resposta
Código de status: 201
Parâmetro |
Tipo |
Descrição |
---|---|---|
name |
String |
Nome da chave de assinatura. Ele pode conter letras, dígitos e sublinhados (_) e deve começar com uma letra. Mínimo: 3 Máximo: 64 |
sign_type |
String |
Tipo de chave de assinatura.
Para usar uma chave básica de assinatura, certifique-se de que sua versão de gateway a suporte. Se o gateway não suportar este tipo de chave de assinatura, contacte o suporte técnico para actualizar o gateway. Para usar uma chave de assinatura public_key, certifique-se de que o recurso public_key tenha sido configurado para o gateway. Para obter detalhes, consulte "Apêndice" > "Recursos suportados". Se o seu gateway não for compatível com esse recurso, entre em contato com o suporte técnico para habilitá-lo. Para usar uma chave de assinatura AES, certifique-se de que sua versão de gateway a suporte. Se o gateway não suportar este tipo de chave de assinatura, contacte o suporte técnico para actualizar o gateway. Valores de enumeração:
|
sign_key |
String |
Chave de assinatura.
|
sign_secret |
String |
Segredo de assinatura.
|
sign_algorithm |
String |
Algoritmo de assinatura. Especifique um algoritmo de assinatura somente ao usar uma chave de assinatura AES. Por padrão, nenhum algoritmo é usado. Valores de enumeração:
|
update_time |
String |
Hora da atualização. |
create_time |
String |
Tempo de criação. |
id |
String |
ID da chave de assinatura. |
Código de status: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Código de status: 401
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Código de status: 403
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Código de status: 500
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Exemplo de solicitações
{ "name" : "signature_demo", "sign_key" : "signkeysignkey", "sign_secret" : "signsecretsignsecretsignsecretsignsecret" }
Exemplo de respostas
Código de status: 201
Criado
{ "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 status: 400
Solicitação inválida
{ "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" }
Código de status: 401
Não autorizado
{ "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" }
Código de status: 403
Proibido
{ "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" }
Código de status: 500
Erro do servidor interno
{ "error_code" : "APIG.9999", "error_msg" : "System error" }
Códigos de status
Código de status |
Descrição |
---|---|
201 |
Criado |
400 |
Solicitação inválida |
401 |
Não autorizado |
403 |
Proibido |
500 |
Erro do servidor interno |
Códigos de erro
Consulte Códigos de erro.