Quiero entender qué significa la autenticación basada en token. Busqué en Internet pero no pude encontrar nada comprensible.
security
authentication
token
http-token-authentication
csharpbaby
fuente
fuente
Respuestas:
Creo que está bien explicado aquí , citando solo las oraciones clave del artículo largo:
En otras palabras: agregue un nivel de indirección para la autenticación: en lugar de tener que autenticarse con nombre de usuario y contraseña para cada recurso protegido, el usuario se autentica de esa manera una vez (dentro de una sesión de duración limitada), obtiene un token de tiempo limitado a cambio , y usa ese token para una mayor autenticación durante la sesión.
Las ventajas son muchas: por ejemplo, el usuario podría pasar el token, una vez que lo haya obtenido, a otro sistema automatizado en el que esté dispuesto a confiar por un tiempo limitado y un conjunto limitado de recursos, pero no estaría dispuesto confiar con su nombre de usuario y contraseña (es decir, con cada recurso al que se les permite acceder, para siempre o al menos hasta que cambien su contraseña).
Si algo aún no está claro, edite su pregunta para aclarar QUÉ no es 100% claro para usted, y estoy seguro de que podemos ayudarlo más.
fuente
De Auth0.com
fuente
A
token
es un dato que soloServer X
podría haberse creado y que contiene suficientes datos para identificar a un usuario en particular.Puede presentar su información de inicio de sesión y solicitar
Server X
untoken
; y luego puede presentar sutoken
y solicitarServer X
realizar alguna acción específica del usuario.Token
Los s se crean utilizando diversas combinaciones de diversas técnicas del campo de la criptografía, así como con aportes del campo más amplio de la investigación de seguridad. Si decides ir y crear tu propiotoken
sistema, será mejor que seas realmente inteligente.fuente
Un token es un dato creado por el servidor y contiene información para identificar un usuario en particular y la validez del token. El token contendrá la información del usuario, así como un código de token especial que el usuario puede pasar al servidor con cada método que admita la autenticación, en lugar de pasar un nombre de usuario y contraseña directamente.
La autenticación basada en tokens es una técnica de seguridad que autentica a los usuarios que intentan iniciar sesión en un servidor, una red u otro sistema seguro, utilizando un token de seguridad proporcionado por el servidor.
Una autenticación es exitosa si un usuario puede demostrarle a un servidor que él o ella es un usuario válido al pasar un token de seguridad. El servicio valida el token de seguridad y procesa la solicitud del usuario.
Una vez que el token es validado por el servicio, se utiliza para establecer el contexto de seguridad para el cliente, de modo que el servicio pueda tomar decisiones de autorización o auditar la actividad para las sucesivas solicitudes de los usuarios.
visita la fuente
fuente
Basado en token (seguridad / autenticación)
significa que para que podamos demostrar que tenemos acceso, primero tenemos que recibir el token. En un escenario de la vida real, el token podría ser una tarjeta de acceso al edificio, podría ser la llave de la cerradura de su casa. Para que pueda recuperar una tarjeta llave para su oficina o la llave de su hogar, primero debe demostrar quién es usted y que, de hecho, tiene acceso a esa ficha. Puede ser algo tan simple como mostrarle a alguien su identificación o darle una contraseña secreta. Así que imagina que necesito tener acceso a mi oficina. Voy a la oficina de seguridad, les muestro mi identificación y me dan esta ficha, que me permite entrar al edificio. Ahora tengo acceso sin restricciones para hacer lo que quiera dentro del edificio, siempre que tenga mi ficha conmigo.
¿Cuál es el beneficio de la seguridad basada en tokens?
Si pensamos en la API insegura, lo que tuvimos que hacer en ese caso fue que teníamos que proporcionar nuestra contraseña para todo lo que queríamos hacer.
Imaginaque cada vez que ingresamos a una puerta de nuestra oficina, tenemos que darles a todos los que están sentados junto a la puerta nuestra contraseña. Eso sería bastante malo, porque eso significa que cualquier persona dentro de nuestra oficina podría tomar nuestra contraseña y hacerse pasar por nosotros, y eso es bastante malo. En cambio, lo que hacemos es recuperar el token, por supuesto, junto con la contraseña, pero lo recuperamos de una persona. Y luego podemos usar esta ficha donde queramos dentro del edificio. Por supuesto, si perdemos el token, tenemos el mismo problema que si alguien más supiera nuestra contraseña, pero eso nos lleva a cosas como cómo nos aseguramos de que si perdemos el token, podemos revocar el acceso, y tal vez el token no debería vivir más de 24 horas, por lo que al día siguiente en que venimos a la oficina, debemos mostrar nuestra identificación nuevamente. Pero aún así, solo hay una persona a la que le mostramos la identificación,
fuente
La pregunta es antigua y la tecnología ha avanzado, aquí está el estado actual:
JSON Web Token (JWT) es un estándar abierto basado en JSON (RFC 7519) para pasar reclamaciones entre las partes en el entorno de aplicaciones web. Los tokens están diseñados para ser compactos, seguros para URL y utilizables, especialmente en el contexto de inicio de sesión único (SSO) del navegador web.
https://en.wikipedia.org/wiki/JSON_Web_Token
fuente
Es solo hash que está asociado con el usuario en la base de datos o de alguna otra manera. Ese token se puede usar para autenticar y luego autorizar a un usuario a acceder a los contenidos de la aplicación. Para recuperar este token en el lado del cliente es necesario iniciar sesión. Después de iniciar sesión por primera vez, debe guardar el token recuperado, no cualquier otro dato como sesión, id de sesión porque aquí todo es token para acceder a otros recursos de la aplicación.
El token se utiliza para asegurar la autenticidad del usuario.
fuente
El enfoque más preferido hoy en día para asegurar los recursos de la API web es autenticar a los usuarios en el servidor de la API web utilizando el token firmado (que contiene suficiente información para identificar a un usuario en particular) que el cliente debe enviar al servidor con cada uno de ellos. cada solicitud Esto se llama enfoque de autenticación basada en tokens.
La autenticación basada en token funciona de la siguiente manera:
Un usuario ingresa el nombre y la contraseña en el cliente (cliente significa el navegador o dispositivos móviles, etc.).
El cliente luego envía estas credenciales (es decir, nombre de usuario y contraseña) al servidor de autorización.
Luego, el servidor de autorización autentica las credenciales del cliente (es decir, nombre de usuario y contraseña) y luego genera y devuelve un token de acceso. Este token de acceso contiene suficiente información para identificar a un usuario y también contiene el tiempo de vencimiento del token.
La aplicación cliente luego incluye el token de acceso en el encabezado de autorización de la solicitud HTTP para acceder a los recursos restringidos desde el servidor de recursos hasta que caduque el token.
El siguiente artículo muestra cómo implementar la autenticación basada en tokens en WEB API paso a paso.
https://dotnettutorials.net/lesson/token-based-authentication-web-api/
fuente
Cuando se registra para un nuevo sitio web, a menudo se le envía un correo electrónico para activar su cuenta. Ese correo electrónico generalmente contiene un enlace para hacer clic. Parte de ese enlace, contiene un token, el servidor conoce este token y puede asociarlo con su cuenta. El token generalmente tendría una fecha de vencimiento asociada, por lo que solo puede tener una hora para hacer clic en el enlace y activar su cuenta. Nada de esto sería posible con las cookies o las variables de sesión, ya que se desconoce qué dispositivo o navegador está utilizando el cliente para revisar los correos electrónicos.
fuente