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.