O plug-in basic-auth autentica e autoriza solicitações com base no padrão HTTP Basic Authentication.
Tipo de plug-in
Autenticação e autorização.
Campos
Configuração de autenticação
|
Campo |
Tipo de dados |
Obrigatório |
Valor padrão |
Descrição |
|
consumers |
array of object |
Sim |
- |
Chamadores do serviço usados para autenticar solicitações. |
|
global_auth |
array of string |
Não (obrigatório apenas para configurações no nível da instância) |
- |
Configurável somente no nível da instância. Se definido como true, a autenticação aplica-se globalmente. Se definido como false, aplica-se apenas aos nomes de domínio e rotas configurados. Caso não seja configurado, a autenticação aplicar-se-á globalmente apenas se não houver nomes de domínio ou rotas definidos, para garantir compatibilidade com versões anteriores. |
Campos em consumers:
|
Campo |
Tipo de dados |
Obrigatório |
Valor padrão |
Descrição |
|
credential |
string |
Sim |
- |
Credencial de acesso do consumidor. |
|
name |
string |
Sim |
- |
Nome do consumidor. |
(Opcional) Configuração de autorização
|
Campo |
Tipo de dados |
Obrigatório |
Valor padrão |
Descrição |
|
allow |
array of string |
Não (obrigatório para configurações fora do nível da instância) |
- |
Configurável apenas no nível de rota ou nome de domínio. Define quais consumidores podem acessar solicitações correspondentes às condições configuradas. |
As configurações de autorização e autenticação não podem coexistir na mesma regra.
Em solicitações autenticadas, o campo
X-Mse-Consumeré adicionado ao cabeçalho da solicitação para identificar o chamador.
Exemplos
Configure autenticação global e autorização para rotas
Este exemplo ativa a autenticação e a autorização básicas para rotas ou domínios específicos de um gateway.
O nome de usuário e a senha na credencial são separados por dois pontos (:).
O valor de
credentialdeve ser único.
Aplique as seguintes configurações de plug-in no nível da instância:
global_auth: false
consumers:
- credential: 'admin:123456'
name: consumer1
- credential: 'guest:abc'
name: consumer2
Aplique as seguintes configurações de plug-in às rotas route-a e route-b:
allow:
- consumer1
Aplique a seguinte configuração de plug-in aos nomes de domínio *.example.com e test.com:
allow:
- consumer2
Neste exemplo, as rotas
route-aeroute-bcorrespondem àquelas especificadas durante a criação das rotas do gateway. Se uma solicitação do cliente corresponder a uma dessas rotas, o chamador cujonameéconsumer1terá permissão para acessar o gateway. Outros chamadores não terão acesso permitido.Os nomes de domínio
*.example.cometest.comservem para corresponder aos domínios nas solicitações. Se uma solicitação do cliente corresponder a um desses domínios, o chamador cujonameéconsumer2poderá acessar o gateway. Demais chamadores serão bloqueados.
Essas configurações permitem as seguintes solicitações:
Nome de usuário e senha especificados na solicitação.
# In this example, route-a in the request is matched.
# Use the -u parameter in the curl command to specify the username and password.
curl -u admin:123456 http://xxx.hello.com/test
# You can also directly specify the Authorization request header in which the username and password are base64-encoded.
curl -H 'Authorization: Basic YWRtaW46MTIzNDU2' http://xxx.hello.com/test
Após a autenticação bem-sucedida, o campo X-Mse-Consumer é adicionado aos cabeçalhos da solicitação para identificar o chamador. Neste exemplo, o valor é consumer1.
Essas configurações negam as seguintes solicitações:
-
Ausência de credenciais na solicitação, resultando no código de status HTTP 401.
curl http://xxx.hello.com/test -
Nome de usuário ou senha inválidos, resultando no código de status HTTP 401.
curl -u admin:abc http://xxx.hello.com/test -
Chamador identificado pelas credenciais sem permissão de acesso, resultando no código de status HTTP 403.
# The consumer named consumer2 is not in the allow list of route-a. curl -u guest:abc http://xxx.hello.com/test
Ative autenticação para gateways
Aplique a seguinte configuração para ativar a autenticação básica no nível da instância. Todas as solicitações deverão ser autenticadas.
global_auth: true
consumers:
- credential: 'admin:123456'
name: consumer1
- credential: 'guest:abc'
name: consumer2
Códigos de erro
|
Código de status HTTP |
Mensagem de erro |
Motivo |
|
401 |
Request denied by Basic Auth check. No Basic Authentication information found. |
Nenhuma credencial fornecida na solicitação. |
|
401 |
Request denied by Basic Auth check. Invalid username and/or password. |
Credencial inválida na solicitação. |
|
403 |
Request denied by Basic Auth check. Unauthorized consumer. |
O chamador não tem permissão de acesso. |