基于令牌的身份验证和可扩展性?错觉?
Token based authentication and scalability? An illusion?
我刚刚阅读 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) is an open standard (RFC 7519) that defines a
compact and self-contained way for securely transmitting information
between parties as a JSON object. This information can be verified and
trusted because it is digitally signed.
我认为 JWT 不适合存储状态信息 除了身份验证数据 。因为常见的JWT存储合理的地方都是有小尺寸限制的,比如HTTP header,Cookie。
你同意吗?任何人都可以对此有所了解吗?
无论您的应用程序是否需要会话状态来处理其他事情,都不会影响使用 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) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed.
我认为 JWT 不适合存储状态信息 除了身份验证数据 。因为常见的JWT存储合理的地方都是有小尺寸限制的,比如HTTP header,Cookie。
你同意吗?任何人都可以对此有所了解吗?
无论您的应用程序是否需要会话状态来处理其他事情,都不会影响使用 JWT 令牌的可扩展性特征。
完全有可能设计一个真正的无状态应用程序,在这种情况下,使用基于令牌的身份验证可以让您保持无状态。
您不应使用安全令牌来存储会话信息,因为令牌已签名且会话信息通常是易变的。每次其中一项声明发生变化时,发行人都需要重新签发令牌。