Quando comecei a criar aplicativos da net, a “autenticação” significava fazer login. Simples, certo?
Mas então vieram perguntas – o que é um token? Devo usar cookies ou teclas de API? Por que existem tantas opções apenas para verificar um usuário?
Acontece que cada método tem um propósito. Alguns estão desatualizados, outros são seguros e outros são ótimos para casos de uso específicos.
Neste weblog, vou dividir seis métodos de autenticação comum – Auth, cookies, tokens, teclas de API, OTP e SSO – e explique quando (e por quê) usar cada um.
Vamos começar.
Autenticação básica
A autenticação básica funciona enviando o nome de usuário e a senha codificados para o servidor a cada solicitação. Essas credenciais estão incluídas nos cabeçalhos de solicitação.
O nome de usuário e a senha são combinados em uma única string e codificados usando Base64. Esta sequência codificada é então enviada no Authorization
Cabeçalho da solicitação HTTP.
A autenticação básica é um dos mecanismos de autenticação mais antigos que remontam aos anos 90.
Embora a autenticação básica seja simples e eficiente, ela não é muito segura, pois as credenciais são meramente codificadas com base64-tornando-as facilmente reversíveis. Isso o deixa vulnerável a ataques de homem no meio, especialmente quando usados em um protocolo inseguro como o HTTP.
Também não há maneira fácil de registrar um usuário através do servidor.
Mesmo com um protocolo seguro abaixo, a autenticação básica pode sofrer de ataques de CSRF. Por esses motivos, a maioria dos aplicativos modernos da Internet se afastou dele em busca de mecanismos de autenticação mais seguros.
Autenticação baseada em biscoitos
A autenticação baseada em cookies funciona gerando um ID da sessão quando o usuário efetua login, que é armazenado como um cookie no navegador do usuário. Para solicitações subsequentes, o navegador inclui automaticamente esse cookie, permitindo que o servidor verifique a identidade do usuário.
O ID da sessão gerado recebe um tempo de validade para garantir que um único cookie não possa ser usado para o infinito.
A autenticação baseada em cookies melhora a autenticação básica, permitindo que o servidor gerencie sessões de usuário. Isso permite recursos como logout do lado do servidor, onde um usuário pode ser conectado à força invalidando sua sessão no servidor.
Os navegadores modernos oferecem vários mecanismos para ajudar a proteger os cookies de ameaças de segurança, como scripts cross-sites (XSS) e falsificação de solicitação entre websites (CSRF). Recursos como o HttpOnly
Assim, Safe
e SameSite
As bandeiras de biscoitos ajudam a reduzir essas vulnerabilidades.
No entanto, a autenticação baseada em biscoitos não é sem desvantagens. Os dados da sessão devem ser armazenados no servidor, que consome recursos e podem não escalar facilmente. Além disso, os cookies são projetados principalmente para navegadores da Internet e não são adequados para outros tipos de clientes, como aplicativos móveis ou APIs.
Autenticação baseada em token
Neste método de autenticação, o servidor responde à solicitação de login de um usuário emitindo um token. O token é independente, o que significa que carrega todas as informações necessárias para a verificação e foi projetado para ser à prova de violação.
Na autenticação baseada em token, o servidor não precisa armazenar dados de sessão-apenas uma chave pública (se estiver usando tokens assinados como o JWTS) para verificar o token fornecido pelo cliente. Isso contrasta com a autenticação baseada em sessão, onde o servidor deve manter o estado da sessão.
Depois que o cliente obtém um token, ele pode incluí -lo nos cabeçalhos de solicitação para fazer solicitações autenticadas. Isso faz com que a autenticação baseada em token seja apátrida e adequada para sistemas distribuídos e escaláveis.
Os aplicativos que usam autenticação baseada em token são mais simples de escalar e podem suportar uma ampla variedade de clientes.
A autenticação baseada em token mais standard é o JSON Internet Tokens (ou JWT).
Existem algumas desvantagens também. Se os tokens não forem armazenados com segurança no lado do cliente, eles podem ser roubados e usados para se passar pelo usuário. Além disso, os tokens – especialmente aqueles que contêm dados de carga útil como o JWTS – são tipicamente maiores em tamanho em comparação com outros mecanismos de autenticação, levando a um uso de largura de banda um pouco mais alto.
Autenticação baseada em chave da API
A autenticação baseada em chave da API é um método para autenticar usuários ou aplicativos acessando uma API (Utility Programming Interface).
Uma chave da API é um identificador exclusivo (geralmente uma sequência alfanumérica longa) emitida para um desenvolvedor ou aplicativo para acessar uma API. Ele atua como um token de acesso simples, identificando o projeto de chamada ou aplicativo.
As chaves da API são emitidas quando os desenvolvedores se registram com um provedor de API e solicitam acesso. Essas chaves são normalmente associadas a projetos específicos e podem ser configurados com níveis variados de controle de acesso. Os provedores de API os usam para monitorar o uso e aplicar limites de taxa, geralmente para fins de cobrança, análise ou segurança.
Existem várias maneiras diferentes pelas quais um cliente pode enviar uma chave da API para o servidor –
- Cabeçalho HTTP –
Authorization: Api-Key
oux-api-key:
- Parâmetro de consulta –
- Solicitar corpo (para solicitações de postagem) –
{ "api_key": "
" }
Autenticação baseada em OTP
Outro método de autenticação amplamente utilizado em aplicativos modernos de software program é Autenticação baseada em OTP (senha única). Diferentemente das senhas fixas tradicionais, a autenticação OTP depende de um código exclusivo e sensível ao tempo que é válido para apenas uma sessão ou transação de login.
Quando um usuário tenta fazer login, o servidor gera uma senha única com uma pequena janela de expiração (normalmente 30 segundos a alguns minutos). Este OTP é enviado ao usuário por meio de um canal pré-verificado e confiável-como um número de celular registrado (by way of SMS) ou endereço de e mail. O usuário deve inserir o OTP correto para concluir o processo de login.
Este método adiciona uma camada adicional de segurança:
- Reduzindo o risco de reutilização de senha e ataques de phishing
- Garantir que apenas o usuário legítimo (com acesso ao dispositivo/e mail confiável) possa fazer login
Depois que o OTP é verificado e o usuário é autenticado com sucesso, o sistema normalmente emite um Token ou cookie de sessão Para manter o estado autenticado do usuário durante a duração da sessão. Esse token é então usado para solicitações subsequentes, evitando a necessidade de reentrar as credenciais repetidamente.
🔐 Autenticação OTP é frequentemente usada como uma forma de Autenticação de dois fatores (2FA) Quando combinado com uma senha tradicional, fortalecendo ainda mais a segurança da conta.
Sinalizador único (SSO)
O Single Signal-On (SSO) é uma maneira de permitir que os usuários efetuem login apenas uma vez e depois acessar vários aplicativos ou sistemas sem precisar fazer login novamente a cada vez. Depois que o usuário assina através do provedor de SSO, um token é criado e transmitido para outros serviços confiáveis, para que o usuário possa se mover entre eles sem problemas, sem ser solicitado a inserir suas credenciais novamente.
Aqui está como funciona
- O usuário visita o web site e tenta fazer login.
- O web site verifica se o usuário já está conectado através da presença de alguns tokens ou cookies. Se for, a solicitação será processada.
- Caso contrário, o usuário é redirecionado para a página de login SSO.
- O usuário faz login através do sistema SSO.
- O SSO verifica as credenciais com o provedor de identidade (por exemplo, Lively Listing).
- Após a verificação bem -sucedida, o SSO envia informações de autenticação para o web site.
- O web site concede acesso e usa tokens/cookies para manter a autenticação em outros aplicativos ou páginas.
Com isso, chegamos ao ultimate deste weblog! Se você gostou de lê -lo, considere deixar um tipo!