基于令牌的身份验证和可伸缩性?幻觉?

时间:2016-01-07 02:44:05

标签: session authentication token jwt

我刚读过The Ins and Outs of Token-based Authentication。它声称可扩展性是server based Authentication的主要问题,因为服务器必须在本地存储会话。它提示token based authentication作为治疗方法。

但是真的吗?

身份验证只是可能导致可伸缩性问题的地方之一。只要存储在服务器端的任何特定于用户的状态信息,无论它是存储在会话范围还是Web应用程序范围内,都会导致可伸缩性问题。单独说token based authentication可以解决可扩展性问题过于夸张。还有太多其他因素更强大。 仅仅因为基于令牌的身份验证是无状态的并不意味着整个服务器都可以无状态

让我们以JWT为例,definition of JWT

  

JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一个   紧凑且独立的方式,可安全传输信息   在各方之间作为JSON对象。此信息可以验证并且   值得信赖,因为它是经过数字签名的。

我认为JWT不适合存储超出认证数据的状态信息。因为JWT存储的常见合理位置都有小的限制,例如HTTP标头,Cookie。

你同意吗?任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:2)

您的应用程序是否需要其他事物的会话状态不会影响使用JWT令牌的可伸缩性特征。

设计真正的无状态应用程序是完全可能的,在这种情况下,使用基于令牌的身份验证可以让您保持无状态。

您不应使用安全令牌来存储会话信息,因为令牌已签名且会话信息通常不稳定。每当其中一个权利要求发生变化时,发行人就需要重新签署令牌。