Todos os produtos
Search
Central de documentação

API Gateway:Plug-in key-auth

Última atualização: Jun 27, 2026

O plug-in key-auth autentica requisições ao extrair chaves de API de parâmetros de URL ou cabeçalhos HTTP e validar permissões de acesso.

Obter uma chave de API (credencial)

Cada chamador se autentica com um valor credential na configuração do plug-in, correspondente a uma chave em string definida por você. Não é necessária nenhuma configuração no console.

Ao definir uma credential, siga estas diretrizes:

  • Use uma string aleatória com mais de 32 caracteres, preferencialmente no formato UUID: 2bda943c-ba2b-11ec-ba07-00163e125d8f

  • Mantenha a credencial segura. Não a exponha em código client-side ou documentação pública.

  • Para atribuir permissões diferentes a vários chamadores, defina uma credential exclusiva para cada um e configure-as no campo consumers.

Tipo de plug-in

Autenticação e autorização.

Campos

Configuração de autenticação

Item de configuração

Tipo de dados

Obrigatório

Valor padrão

Descrição

consumers

array de objetos

Sim

-

Chamadores do serviço para autenticação de requisições.

keys

array de strings

Sim

-

Nomes dos parâmetros de URL ou cabeçalhos HTTP de onde extrair as chaves de API.

in_query

bool

Pelo menos um entre in_query e in_header deve ser definido como true.

true

Se definido como true, o gateway extrai as chaves de API dos parâmetros de URL.

in_header

bool

Pelo menos um entre in_query e in_header deve ser definido como true.

true

Se definido como true, o gateway extrai as chaves de API dos cabeçalhos HTTP.

global_auth

array de strings

Não (Obrigatório apenas para configurações no nível da instância)

-

Exclusivo do nível da instância. Se true, a autenticação aplica-se globalmente. Se false, aplica-se apenas aos domínios e rotas configurados. Se não definido, a autenticação global ativa-se somente quando nenhum domínio ou rota estiver configurado.

Campos no objeto consumers:

Item de configuração

Tipo de dados

Obrigatório

Valor padrão

Descrição

credential

string

Sim

-

Credencial de acesso do consumidor.

name

string

Sim

-

Nome do consumidor.

Configuração de autorização (opcional)

Item de configuração

Tipo de dados

Obrigatório

Valor padrão

Descrição

allow

array de strings

Não (Obrigatório para configurações fora do nível da instância)

-

Aplicável apenas nos níveis de rota ou domínio. Lista os consumidores autorizados a acessar as requisições correspondentes.

Importante
  • As configurações de autorização e autenticação não podem coexistir na mesma regra.

  • Em requisições autenticadas, o sistema adiciona o cabeçalho X-Mse-Consumer para identificar o chamador.

Exemplo

Autenticação global com autorização no nível da rota

Este exemplo configura a autenticação no nível da instância e a autorização nos níveis de rota e domínio. Cada valor de credential deve ser exclusivo.

Configuração do plug-in no nível da instância:

global_auth: false
consumers:
- credential: 2bda943c-ba2b-11ec-ba07-00163e125***
  name: consumer1
- credential: c8c8e9ca-558e-4a2d-bb62-e700dcc40***
  name: consumer2
keys:
- apikey
- x-api-key

Configuração do plug-in para as rotas route-a e route-b:

allow:
- consumer1

Configuração do plug-in para os domínios *.example.com e test.com:

allow:
- consumer2
Nota
  • Se uma requisição corresponder a route-a ou route-b, apenas o chamador com name definido como consumer1 terá acesso permitido.

  • Se uma requisição corresponder a *.example.com ou test.com, apenas o chamador com name definido como consumer2 terá acesso permitido.

Requisições permitidas (correspondentes à rota route-a):

  • Chave de API em parâmetro de URL:

    curl  http://xxx.hello.com/test?apikey=2bda943c-ba2b-11ec-ba07-00163e1***
  • Chave de API em cabeçalho HTTP:

    curl  http://xxx.hello.com/test -H 'x-api-key: 2bda943c-ba2b-11ec-ba07-00163e1***'

Após a autenticação bem-sucedida, o cabeçalho X-Mse-Consumer identifica o chamador. Neste exemplo, o valor é consumer1.

Requisições negadas:

  • Nenhuma chave de API fornecida. Retorna HTTP 401.

    curl  http://xxx.hello.com/test
  • Chave de API inválida. Retorna HTTP 401.

    curl  http://xxx.hello.com/test?apikey=926d90ac-ba2e-11ec-ab68-00163e1***
  • O chamador correspondente não tem permissão de acesso. Retorna HTTP 403.

    # The caller consumer2 is not in the whitelist of route-a.
    curl  http://xxx.hello.com/test?apikey=c8c8e9ca-558e-4a2d-bb62-e700dcc***

Ative autenticação em todo o gateway

Com a configuração abaixo no nível da instância, todas as requisições exigem autenticação key-auth.

global_auth: true
consumers:
- credential: 2bda943c-ba2b-11ec-ba07-00163e1***
  name: consumer1
- credential: c8c8e9ca-558e-4a2d-bb62-e700dcc***
  name: consumer2
keys:
- apikey
- x-api-key

Códigos de erro

Código de status HTTP

Mensagem de erro

Motivo

401

No API key found in request.

A requisição não contém chave de API.

401

Request denied by Key Auth check. Invalid API key.

A chave de API é inválida.

403

Request denied by Key Auth check. Unauthorized consumer.

O chamador não tem permissão de acesso.