Basic authentication

HTTP Basic authentication is one of the least resource-demanding techniques that enforce access controls to web resources. You can secure your Quarkus application endpoints with HTTP Basic authentication. Quarkus provides a built-in authentication mechanism for Basic authentication.

Basic authentication uses fields in the HTTP header and does not require HTTP cookies, session identifiers, or login pages.

Cabeçalho de autorização

An HTTP user agent, for example, a web browser, uses an Authorization header to provide a username and password in each HTTP request. The header is specified as Authorization: Basic <credentials>, where credentials are the Base64 encoding of the user ID and password joined by a colon, as shown in the following example.

Exemplo

Se o nome de usuário for Alice e a senha for secret, o cabeçalho de autorização HTTP seria Authorization: Basic QWxjZTpzZWNyZXQ=, onde QWxjZTpzZWNyZXQ= é uma representação codificada em Base64 da string Alice:secret.

O mecanismo de autenticação Basic não oferece proteção de confidencialidade para as credenciais transmitidas. As credenciais são meramente codificadas com Base64 durante a transmissão, e não são criptografadas nem transformadas em hash de forma alguma. Portanto, para fornecer confidencialidade, use autenticação básica com HTTPS.

A autenticação básica é um esquema simples e bem especificado de desafio e resposta que todos os navegadores Web e a maioria dos servidores Web entendem.

Limitações ao usar autenticação básica (Basic)

A tabela a seguir descreve algumas limitações do uso da autenticação HTTP Basic para proteger seus aplicativos Quarkus:

Table 1. Limitações da autenticação HTTP Basic
Limitação Descrição

As credenciais são enviadas como texto simples

Use HTTPS com autenticação básica para evitar expor as credenciais. O risco de expor credenciais como texto simples aumenta se um balanceador de carga encerrar o HTTPS porque a solicitação é encaminhada para o Quarkus por HTTP. Além disso, em implantações multi-hop, as credenciais podem ser expostas se for usado HTTPS apenas entre o cliente e o primeiro endpoint do Quarkus, e as credenciais forem propagadas para o próximo endpoint do Quarkus por HTTP.

As credenciais são enviadas com cada solicitação

Na autenticação Basic, um nome de usuário e senha devem ser enviados com cada requisição, aumentando o risco de expor credenciais.

A complexidade da aplicação aumenta

A aplicação Quarkus deve validar se os nomes de usuário, senhas e papéis (funções) são gerenciados de forma segura. Este processo, no entanto, pode introduzir uma complexidade significativa na aplicação. Dependendo do caso de uso, outros mecanismos de autenticação que delegam o gerenciamento de nome de usuário, senha e papéis para serviços especializados podem ser mais seguros.

Implementando autenticação básica (Basic) no Quarkus

Para mais informações sobre como você pode proteger suas aplicações Quarkus utilizando autenticação Basic, consulte os seguintes recursos:

Controle de acesso baseado em função

Quarkus também inclui segurança integrada para permitir o controle de acesso baseado em função (RBAC) com base nas anotações de segurança comuns @RolesAllowed, @DenyAll, @PermitAll em endpoints REST e beans CDI. Para mais informações, consulte o guia Quarkus de Autorização de endpoints da web .