Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-29 GMT+08:00

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

Tabela 1 Parâmetros de caminho

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

Tabela 2 Parâmetros do cabeçalho 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.

Tabela 3 Parâmetros de corpo de solicitação

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.

  • hmac

  • básico

  • public_key

  • aes

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:

  • hmac

  • basic

  • public_key

  • aes

sign_key

Não

String

Chave de assinatura.

  • hmac: o valor contém de 8 a 32 caracteres, incluindo letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • básico: o valor contém de 4 a 32 caracteres, incluindo letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma letra. Se não for especificado, um valor é gerado automaticamente.

  • public_key: o valor contém de 8 a 512 caracteres, incluindo letras, dígitos e caracteres especiais (_-+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

  • aes: o valor contém 16 caracteres se o algoritmo aes-128-cfb for usado ou 32 caracteres se o algoritmo aes-256-cfb for usado. Letras, dígitos e caracteres especiais (_-!@#$%+/=) são permitidos. O valor deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

sign_secret

Não

String

Segredo de assinatura.

  • hmac: o valor contém de 16 a 64 caracteres. Letras, dígitos e caracteres especiais (_-!@#$%) são permitidos. Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • básico: o valor contém de 8 a 64 caracteres. Letras, dígitos e caracteres especiais (_-!@#$%) são permitidos. Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • public_key: o valor contém de 15 a 2048 caracteres, incluindo letras, dígitos e caracteres especiais (_-!@#$%+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

  • aes: o valor contém 16 caracteres, incluindo letras, dígitos e caracteres especiais (_-!@#$%+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

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:

  • aes-128-cfb

  • aes-256-cfb

Parâmetros de resposta

Código de status: 201

Tabela 4 Parâmetros de corpo de resposta

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.

  • hmac

  • básico

  • public_key

  • aes

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:

  • hmac

  • basic

  • public_key

  • aes

sign_key

String

Chave de assinatura.

  • hmac: o valor contém de 8 a 32 caracteres, incluindo letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • básico: o valor contém de 4 a 32 caracteres, incluindo letras, dígitos, sublinhados (_) e hifens (-). Deve começar com uma letra. Se não for especificado, um valor é gerado automaticamente.

  • public_key: o valor contém de 8 a 512 caracteres, incluindo letras, dígitos e caracteres especiais (_-+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

  • aes: o valor contém 16 caracteres se o algoritmo aes-128-cfb for usado ou 32 caracteres se o algoritmo aes-256-cfb for usado. Letras, dígitos e caracteres especiais (_-!@#$%+/=) são permitidos. O valor deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

sign_secret

String

Segredo de assinatura.

  • hmac: o valor contém de 16 a 64 caracteres. Letras, dígitos e caracteres especiais (_-!@#$%) são permitidos. Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • básico: o valor contém de 8 a 64 caracteres. Letras, dígitos e caracteres especiais (_-!@#$%) são permitidos. Deve começar com uma letra ou dígito. Se não for especificado, um valor é gerado automaticamente.

  • public_key: o valor contém de 15 a 2048 caracteres, incluindo letras, dígitos e caracteres especiais (_-!@#$%+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

  • aes: o valor contém 16 caracteres, incluindo letras, dígitos e caracteres especiais (_-!@#$%+/=). Deve começar com uma letra, dígito, sinal de adição (+), ou barra (/). Se não for especificado, um valor é gerado automaticamente.

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:

  • aes-128-cfb

  • aes-256-cfb

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

Tabela 5 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 401

Tabela 6 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 403

Tabela 7 Parâmetros de corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

error_msg

String

Mensagem de erro.

Código de status: 500

Tabela 8 Parâmetros de corpo de resposta

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.