什么是基于令牌的authentication?

我想了解什么基于令牌的authentication手段。 我search了互联网,但找不到任何可以理解的东西。

我想这里已经解释清楚了 – 只是引用了长篇文章的关键句子:

基于令牌的authentication系统背后的一般概念很简单。 允许用户input他们的用户名和密码,以获得一个令牌,使他们能够获取特定的资源 – 无需使用用户名和密码。 一旦获得令牌,用户就可以向远程站点提供令牌 – 可以访问特定资源一段时间。

换句话说:为身份validation添加一个间接级别 – 而不必使用每个受保护资源的用户名和密码进行身份validation,用户通过一次身份validation(在有限持续时间的会话中),获取时间受限的令牌并在会话期间使用该令牌进行进一步的身份validation。

优点是很多 – 例如,用户一旦获得它就可以将令牌传递给他们在有限的时间和有限的一组资源上愿意信任的其他自动化系统,但是不愿意信任他们的用户名和密码(即,他们被允许访问的每一个资源,永远或至less在他们改变密码之前)。

如果还有什么不清楚的地方,请编辑你的问题,以澄清什么是不是100%清楚,我相信我们可以进一步帮助你。

来自Auth0.com

基于令牌的身份validation,依赖于每个请求发送到服务器的签名令牌。

使用基于令牌的方法有什么好处?

  • 跨域/ CORS: Cookie + CORS在不同的域名中performance不佳。 基于令牌的方法允许您对任何服务器进行AJAX调用,因为您使用HTTP头来传输用户信息。

  • 无状态(又名服务器端可扩展性):不需要保留会话存储,令牌是传递所有用户信息的独立实体。 其余的州生活在客户端的cookies或本地存储。

  • CDN:您可以从CDN(例如JavaScript,HTML,图像等)提供您应用的所有资产,而您的服务器端只是API。

  • 解耦:你没有被绑定到任何特定的authenticationscheme。 令牌可能在任何地方生成,因此您的API可以从任何地方通过validation这些调用的单一方式进行调用。

  • 移动就绪:当您开始在本地平台(iOS,Android,Windows 8等)上工作时,使用基于令牌的方法简化了很多操作。

  • CSRF:既然你不依赖于cookies,你不需要防止跨站点的请求(例如,你不可能站在你的网站,生成一个POST请求,并重新使用现有的身份validationcookie,因为没有)。

  • 性能:我们在这里没有提供任何硬件性能基准testing,但是在计算HMACSHA256来validation令牌和parsing其内容时,networking往返(比如查找数据库会话)可能需要更多的时间。

token是只有Server X可能已经创build,并且包含足够的数据来标识特定用户的一段数据。

您可能会显示您的login信息并向Server X索取token ; 然后您可能会出示您的token并要求Server X执行一些用户特定的操作。

Token是使用来自密码学领域的各种技术的各种组合以及来自更广泛的安全研究领域的input创build的。 如果你决定去创build自己的token系统,你最好是非常聪明的。

令牌是由服务器创build的一段数据,包含识别特定用户和令牌有效性的信息。 令牌将包含用户的信息,以及用户可以使用每种支持validation的方法传递给服务器的特殊令牌代码,而不是直接传递用户名和密码。

基于标记的身份validation是一种安全技术,它使用服务器提供的安全令牌对尝试login到服务器,networking或其他安全系统的用户进行身份validation。

如果用户可以通过传递安全令牌向服务器certificate他或她是有效的用户,则authentication成功。 该服务validation安全令牌并处理用户请求。

令牌由服务validation后,用于为客户端build立安全上下文,以便服务可以对连续的用户请求进行授权决策或审计活动。

访问源代码

问题是老的,技术是先进的,现在是这样的状态:

JSON Web Token(JWT)是一个基于JSON的开放标准(RFC 7519),用于在Web应用程序环境中在各方之间传递声明。 令牌被devise成紧凑的,URL安全的并且尤其在web浏览器单点login(SSO)上下文中可用。

https://en.wikipedia.org/wiki/JSON_Web_Token

这只是一个32个字符或更多的string,它与数据库中的用户或其他方式相关联。 该令牌可用于授权用户访问应用程序的其他相关内容。 要在客户端检索此令牌login是必需的。 第一次login后,您需要保存检索到的令牌,而不是任何其他数据,如会话,会话ID,因为这里一切都是令牌来访问应用程序的其他资源。

令牌用来保证用户的真实性。

当您注册一个新的网站时,通常会发送一封电子邮件来激活您的帐户。 该电子邮件通常包含一个点击链接。 该链接的一部分,包含一个令牌,服务器知道这个令牌,并可以将其与您的帐户相关联。 令牌通常会有与之关联的到期date,所以您可能只有一个小时点击链接并激活您的帐户。 这些都不可能与cookie或会话variables,因为它不知道什么设备或浏览器客户用来检查电子邮件。