Segurança: Autenticação do Usuário
A expressão autenticação do usuário, no contexto das aplicações para web, significa que o programa servidor precisa, de alguma forma, ter certeza que o usuário realmente é quem ele diz ser.
Uma das formas para verificar a autenticidade do usuário é exigir que ele apresente um certificado, do mesmo modo que o servidor apresenta o seu certificado. O protocolo TLS, visto na seção anterior, possibilita isso.
Outra forma, mais comum, é o usuário informar uma senha ou código de modo que o programa servidor possa verificar a sua autenticidade.
Autenticidade Baseada em Senha ou Código
Há basicamente três estratégias comumente usadas implementar um mecanismo de autenticação de usuários em uma aplicação para web:
- a aplicação mantém, normalmente em uma base de dados, uma relação contendo logins e senhas dos usuários. Se o usuário souber informar a senha correta associada a um login então ele está autenticado (o sistema assumirá que ele é quem diz ser).
- a aplicação terceiriza a autenticação. Algumas empresas ou organizações como Google, Facebook, GitHub, fornecem serviços de autenticação. Nesse caso cabe a esta empresa verificar se o login e senha conferem.
a aplicação envia um código para a conta de e-mail (ou telefone celular) do usuário. Este então usa o código para confirmar que é quem diz ser. Este código tem, normalmente, pouco tempo de validade.
Tem sido cada vez mais comum a utilização de duas técnicas ao mesmo tempo, chamada de autenticação em dois fatores (two-factor autentication). Além do login e senha, exige-se que o usuário utilize um código.