为什么JWT是无状态身份验证?

问题描述 投票:1回答:2

我试图了解JWT身份验证是如何无状态的。在有状态身份验证中,会有一个会话ID。这里有一个签名的JWT令牌。因此,身份验证服务器会发出JWT令牌,但我可以说后续请求中的JWT令牌验证是由端点服务器(应用程序服务器)而不是身份验证服务器完成的。我相信这是可能的,因为JWT签署了有效期(以及其他一些信息),并且所有端点服务器都可以使用认证服务器的公共证书。

因此,身份验证服务器将仅负责发出令牌而不是验证。验证将由端点服务器完成。

我的理解是否正确? JWT是无国籍的吗?否则,我看不出它与状态认证有何不同,因为两者都可以使用令牌实现。

在有状态身份验证中,集中式服务器将负责发出令牌以及每个请求的验证。

authentication oauth-2.0 jwt jwt-auth
2个回答
2
投票

JSON Web Tokens(JWT)被称为无状态,因为授权服务器不需要保持状态;令牌本身就是验证令牌持有者授权所需的全部内容。

使用不能伪造的数字签名算法(例如RSA)对JWT进行签名。因此,任何信任签名者证书的人都可以放心地相信JWT是真实的。服务器无需咨询令牌发布服务器以确认其真实性。

请注意,在此图中,资源服务器不需要使用授权服务器进行检查:

资料来源:https://jwt.io/introduction/


1
投票

在无状态身份验证中,无需在会话中存储用户信息。我们可以轻松地使用相同的令牌从我们登录的域之外的域中获取安全资源。

参考:https://www.jbspeakr.cc/purpose-jwt-stateless-authentication/

© www.soinside.com 2019 - 2024. All rights reserved.