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.