Junior
O que é autenticação básica (Basic Auth)?
sobes.tech IA
Resposta da IA
A autenticação básica é a forma mais simples de autenticação de cliente HTTP, definida no padrão RFC 7617.
Princípio de funcionamento:
- O cliente envia uma requisição HTTP a um recurso protegido.
- O servidor responde com um status
401 Unauthorizede um cabeçalhoWWW-Authenticate: Basic realm="<realm>", onde<realm>é uma descrição textual da área protegida (recurso). - O navegador ou aplicação cliente exibe uma caixa de diálogo para inserir o nome de usuário e a senha.
- O cliente codifica o nome de usuário e a senha numa string no formato
username:password. - A string obtida é codificada usando Base64.
- O cliente repete a requisição, adicionando o cabeçalho
Authorization: Basic <string_base64_codificada>, onde<string_base64_codificada>é o resultado da codificação Base64. - O servidor decodifica a string Base64, separa o nome de usuário e a senha e verifica as credenciais.
- Se as credenciais estiverem corretas, o servidor envia o recurso solicitado. Caso contrário, responde novamente com
401 Unauthorized.
Exemplo de cabeçalho Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
onde YWxhZGRpbjpvcGVuc2VzYW1l é uma string codificada em Base64 de aladdin:opensesame.
Características:
- Simplicidade: Fácil de implementar tanto no cliente quanto no servidor.
- Insegurança: Os dados de credenciais são transmitidos, mesmo codificados em Base64, mas sem criptografia. Base64 é uma codificação, não uma criptografia. Ao interceptar o tráfego, os dados podem ser facilmente decodificados. Somente em combinação com HTTPS ela fornece um nível mínimo de segurança.
- Estado: Não mantém estado no servidor entre requisições (sem estado). Cada requisição requer o cabeçalho
Authorization. - Experiência do usuário: A janela de diálogo do navegador é menos flexível e amigável em comparação com formulários de autenticação personalizados.
Uso: Geralmente utilizado para proteger APIs, recursos estáticos ou em sistemas internos simples onde a segurança não é crítica, ou sempre em combinação com SSL/TLS (HTTPS).