Quero entender o que significa autenticação baseada em token. Eu procurei na internet, mas não consegui encontrar nada compreensível.
security
authentication
token
http-token-authentication
csharpbaby
fonte
fonte
Respostas:
Eu acho que está bem explicado aqui - citando apenas as principais frases do longo artigo:
Em outras palavras: adicione um nível de indireção para autenticação - em vez de ter que se autenticar com nome de usuário e senha para cada recurso protegido, o usuário se autentica dessa maneira uma vez (em uma sessão de duração limitada), obtém um token por tempo limitado em troca e usa esse token para autenticação adicional durante a sessão.
As vantagens são muitas - por exemplo, o usuário pode passar o token, uma vez obtido, para algum outro sistema automatizado no qual ele esteja disposto a confiar por um tempo limitado e um conjunto limitado de recursos, mas não estaria disposto confiar em seu nome de usuário e senha (ou seja, com todos os recursos que eles têm permissão para acessar, para todo o sempre ou pelo menos até que eles mudem sua senha).
Se algo ainda não estiver claro, edite sua pergunta para esclarecer o que não é 100% claro para você e tenho certeza de que podemos ajudá-lo.
fonte
De Auth0.com
fonte
A
token
é um dado que apenasServer X
poderia ter sido criado e que contém dados suficientes para identificar um usuário específico.Você pode apresentar suas informações de login e solicitar
Server X
umtoken
; e, em seguida, você pode apresentartoken
e pedirServer X
para executar alguma ação específica do usuário.Token
s são criados usando várias combinações de várias técnicas do campo da criptografia, bem como com informações do campo mais amplo da pesquisa de segurança. Se você decidir criar seu própriotoken
sistema, é melhor ser realmente inteligente.fonte
Um token é um dado criado pelo servidor e contém informações para identificar um usuário específico e a validade do token. O token conterá as informações do usuário, bem como um código de token especial que o usuário pode passar para o servidor com todos os métodos que suportam autenticação, em vez de passar diretamente um nome de usuário e senha.
A autenticação baseada em token é uma técnica de segurança que autentica os usuários que tentam efetuar login em um servidor, rede ou outro sistema seguro, usando um token de segurança fornecido pelo servidor.
Uma autenticação é bem-sucedida se um usuário puder provar a um servidor que ele é um usuário válido, passando um token de segurança. O serviço valida o token de segurança e processa a solicitação do usuário.
Depois que o token é validado pelo serviço, ele é usado para estabelecer o contexto de segurança para o cliente, para que o serviço possa tomar decisões de autorização ou atividade de auditoria para solicitações sucessivas do usuário.
visite a fonte
fonte
Baseado em token (segurança / autenticação)
significa que, para provarmos que temos acesso, primeiro precisamos receber o token. Em um cenário da vida real, o token pode ser um cartão de acesso à construção, pode ser a chave da fechadura da sua casa. Para recuperar um cartão-chave para o seu escritório ou a chave da sua casa, primeiro você precisa provar quem é e que, de fato, tem acesso a esse token. Pode ser algo tão simples quanto mostrar a alguém o seu ID ou fornecer uma senha secreta. Imagine que eu preciso ter acesso ao meu escritório. Vou até o escritório de segurança, mostro minha identidade e eles me dão esse símbolo, que me deixa entrar no prédio. Agora eu tenho acesso irrestrito para fazer o que eu quiser dentro do prédio, desde que eu tenha meu token comigo.
Qual é o benefício da segurança baseada em token?
Se pensarmos na API insegura, o que tínhamos que fazer nesse caso era que precisássemos fornecer nossa senha para tudo o que queríamos fazer.
Imagineque toda vez que entramos em uma porta de nosso escritório, precisamos fornecer a todos os que estão sentados ao lado da porta nossa senha. Agora isso seria muito ruim, porque isso significa que qualquer pessoa em nosso escritório poderia pegar nossa senha e nos representar, e isso é muito ruim. Em vez disso, o que fazemos é recuperar o token, é claro, juntamente com a senha, mas o recuperamos de uma pessoa. E então podemos usar esse token onde quisermos dentro do edifício. Obviamente, se perdermos o token, teremos o mesmo problema de alguém saber nossa senha, mas isso nos leva a coisas como garantir que, se perdermos o token, podemos revogar o acesso e talvez o token. não deve durar mais de 24 horas; portanto, no dia seguinte em que chegamos ao escritório, precisamos mostrar nossa identidade novamente. Ainda assim, há apenas uma pessoa para quem mostramos o ID,
fonte
A questão é antiga e a tecnologia avançou, eis o estado atual:
O JSON Web Token (JWT) é um padrão aberto baseado em JSON (RFC 7519) para transmitir declarações entre partes no ambiente de aplicativos da web. Os tokens foram projetados para serem compactos, seguros para URL e utilizáveis, especialmente no contexto de logon único (SSO) do navegador da web.
https://en.wikipedia.org/wiki/JSON_Web_Token
fonte
É apenas o hash associado ao usuário no banco de dados ou de alguma outra maneira. Esse token pode ser usado para autenticar e autorizar um usuário a acessar o conteúdo relacionado ao aplicativo. Para recuperar esse token no login do lado do cliente é necessário. Após o primeiro login, você precisa salvar o token recuperado e não outros dados como sessão, ID da sessão, porque aqui tudo é token para acessar outros recursos do aplicativo.
O token é usado para garantir a autenticidade do usuário.
fonte
Atualmente, a abordagem mais preferida para proteger os recursos da API da Web é autenticar os usuários no servidor da API da Web usando o token assinado (que contém informações suficientes para identificar um usuário específico) que precisa ser enviado ao servidor pelo cliente com cada um e todo pedido. Isso é chamado de abordagem de autenticação baseada em token.
A autenticação baseada em token funciona da seguinte maneira:
Um usuário digita o nome e a senha no cliente (cliente significa o navegador ou dispositivos móveis etc).
O cliente envia essas credenciais (ou seja, nome de usuário e senha) ao Servidor de Autorização.
Em seguida, o servidor de autorização autentica as credenciais do cliente (ou seja, nome de usuário e senha) e, em seguida, gera e retorna um token de acesso. Este token de acesso contém informações suficientes para identificar um usuário e também o tempo de expiração do token.
O aplicativo cliente inclui o token de acesso no cabeçalho de autorização da solicitação HTTP para acessar os recursos restritos do servidor de recursos até que o token expire.
O artigo a seguir mostra como implementar a autenticação baseada em token na API WEB passo a passo.
https://dotnettutorials.net/lesson/token-based-authentication-web-api/
fonte
Quando você se registra em um novo site, geralmente recebe um email para ativar sua conta. Esse e-mail normalmente contém um link para clicar. Parte desse link, contém um token, o servidor conhece esse token e pode associá-lo à sua conta. O token geralmente tem uma data de validade associada a ele; portanto, você pode ter apenas uma hora para clicar no link e ativar sua conta. Nada disso seria possível com cookies ou variáveis de sessão, pois não se sabe qual dispositivo ou navegador o cliente está usando para verificar e-mails.
fonte