Vinculação de uma chave de assinatura
Função
Uma chave de assinatura só entra em vigor após ser vinculada a uma API. Ao solicitar o serviço de back-end, o APIG usa a chave de assinatura para assinar solicitações criptograficamente. O serviço de back-end verifica a assinatura para identificar fontes de solicitação. Essa API é usada para vincular uma chave de assinatura a uma ou mais APIs publicadas. Você pode vincular chaves de assinatura diferentes a uma API em ambientes diferentes, mas pode vincular apenas uma chave de assinatura à API em cada ambiente.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings
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 |
---|---|---|---|
sign_id |
Sim |
String |
ID da chave de assinatura. |
publish_ids |
Sim |
Array of strings |
ID do registro de publicação da API. |
Parâmetros de resposta
Código de status: 201
Parâmetro |
Tipo |
Descrição |
---|---|---|
bindings |
Array of SignApiBindingInfo objects |
APIs vinculadas à chave de assinatura. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
publish_id |
String |
ID do registro de publicação da API. |
api_id |
String |
ID da API. |
group_name |
String |
Nome do grupo de APIs ao qual a API pertence. |
binding_time |
String |
Tempo de vinculação. |
env_id |
String |
ID do ambiente no qual a API foi publicada. |
env_name |
String |
Nome do ambiente no qual a API foi publicada. |
api_type |
Integer |
Tipo de API. |
api_name |
String |
Nome da API. |
id |
String |
ID do registro de vinculação. |
api_remark |
String |
Descrição da API. |
sign_id |
String |
ID da chave de assinatura. |
sign_name |
String |
Nome da chave de assinatura. Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, dígitos e sublinhados (_) são permitidos. |
sign_key |
String |
Chave de assinatura.
|
sign_secret |
String |
Segredo de assinatura.
|
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:
|
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: 404
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
{ "sign_id" : "0b0e8f456b8742218af75f945307173c", "publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ] }
Exemplo de respostas
Código de status: 201
Criado
{ "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 status: 400
Solicitação inválida
{ "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:sign_id. 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: 404
Não encontrado
{ "error_code" : "APIG.3017", "error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist" }
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 |
404 |
Não encontrado |
500 |
Erro do servidor interno |
Códigos de erro
Consulte Códigos de erro.