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.