当前位置: 首页 > 知识库问答 >
问题:

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

朱自明
2023-03-14

我试图理解为什么JWT认证是无状态的。在有状态认证中,会有一个会话id。这里有一张JWT的代币,上面有签名。所以身份验证服务器发布JWT令牌,但是我可以说后续请求中JWT令牌的验证是由endpoint服务器(应用服务器)而不是身份验证服务器来完成的吗?我相信这是可能的,因为JWT是用截止日期(还有一些其他信息)签名的,并且认证服务器的公共证书对所有endpoint服务器都是可用的。

因此,认证服务器将只负责发放令牌,而不负责验证。验证将由endpoint服务器完成。

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

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

共有2个答案

古起运
2023-03-14

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

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

陶柏
2023-03-14

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

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

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

 类似资料:
  • 我已经实现了一个无状态服务器,它使用JWT让用户访问api。我关心的是安全问题。之前也有同样的问题,但没有得到很好的回答:JWT、无状态身份验证和安全性 问题:使用一些因素,如JWE(加密令牌)或使用强秘密来签署令牌 如果秘密钥匙被盗怎么办?然后,无论我们使用了多少安全层,黑客都可以使用密钥生成有效令牌并访问所有API。是否有任何解决方案使其更安全?

  • 一切工作都很正常,只是随机/偶尔地,尽管用户登录了,会话超时发生,系统注销了用户,尽管令牌有7天的有效期。 所以我决定尝试使系统没有任何会话而无状态。为此,我使用了以下命令: 根据禁用主题状态会话存储 然而,现在我根本无法登录。我得到了 我还没有找到任何完整的会话少四郎的例子。对我的代码有什么建议让它工作吗??我一定是错过了什么,但我不知道是什么。 为什么禁用会话后MyRealm无法从Userna

  • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

  • 我一直有一个问题,即JWT是否真的安全?因为在对声明和有效载荷进行编码时,我们可以很容易地对令牌进行解码,并且在那里的网站上也很好地给出了这种解码。所以我的观点是,任何人都可以简单地使用burpsuite之类的工具更改auth头,并提供一些其他有效的令牌,对假用户进行身份验证。按照许多人的建议,将令牌存储在本地存储中也可能不太安全。所以我的问题是,与加密的cookie或会话相比,它真的是安全的吗?

  • 我正在构建一个API,并试图在多个上下文中解决身份验证问题。 API需要为我们创建和部署的客户端应用程序提供服务,并使用密码处理经过身份验证的请求。在每个请求中都发送密码并不是一个好主意,因此首先点击登录endpoint并获得会话ID更有意义。问题中的webapp是用AngularJS编写的,应该在localStorage中跟踪自己的会话,以减轻会话劫持并消除对cookie的依赖以跟踪会话。 we

  • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie