【发布时间】:2019-09-16 19:03:44
【问题描述】:
我试图了解 JWT 身份验证如何是无状态的。在有状态身份验证中,会有一个会话 id。这里有一个已签名的 JWT 令牌。所以认证服务器发出 JWT 令牌,但是我可以说在后续请求中对 JWT 令牌的验证是由端点服务器(应用程序服务器)而不是认证服务器完成的。我相信这是可能的,因为 JWT 是用到期日期(以及其他一些信息)签名的,并且身份验证服务器的公共证书对所有端点服务器都可用。
所以认证服务器将只负责颁发令牌而不是验证。验证将由端点服务器完成。
我的理解正确吗?这就是 JWT 无状态的方式吗?否则,我看不出它与有状态身份验证有何不同,因为两者都可以使用令牌来实现。
在有状态身份验证中,中心化服务器将负责颁发令牌以及验证每个请求。
【问题讨论】:
-
发行服务器必须不维护已发行令牌的任何状态。
-
谢谢乔纳森。这是否意味着任何服务器都可以验证 JWT(不仅仅是发布服务器)?不是这个主意吗?
-
是的。任何信任签署 JWT 的证书的人都会信任 JWT——无需询问发行服务器。
-
谢谢!现在很清楚了。如果您添加了这是答案部分,我可以接受这个作为答案(如果您现在添加,我会接受)。再次感谢您!
标签: authentication oauth-2.0 jwt jwt-auth