【发布时间】:2023-03-08 23:04:01
【问题描述】:
我认为 jwt.io 并没有很好地解释为什么或何时使用 jwt。它解释了其他可以考虑但对于决定是否使用它或为什么它会派上用场并不重要的事情。
我为什么要使用 JSON Web Tokens 的想法?
身份验证: 将会话存储在服务之外是很有用的,并且可以从无状态专家(例如:升级)中受益。
因此,JWT 可以方便地不实施远程会话解决方案,该解决方案将需要例如 memcached 基础设施、令牌管理器软件模块来创建、更新、使令牌无效。但它会有一个缺点,就是会话信息会在客户端中暴露出来。
信息交换:分享您的秘密(或公钥)以允许发送者签署令牌。 为什么不为此使用 https 或证书?
所以我的问题是:我的假设是否正确?我对何时需要使用 jwt 以及与当前/实际解决方案相比的好处感到困惑。
来自https://jwt.io/introduction/的其他信息
什么时候应该使用 JSON 网络令牌?
身份验证:这是使用 JWT 最常见的场景。用户登录后,每个后续请求都将包含 JWT,从而允许用户访问该令牌允许的路由、服务和资源。单点登录是当今广泛使用 JWT 的一项功能,因为它的开销很小并且能够轻松跨不同域使用。
信息交换:JSON Web 令牌是在各方之间安全传输信息的好方法。因为可以对 JWT 进行签名(例如,使用公钥/私钥对),所以您可以确定发件人就是他们所说的那个人。此外,由于使用标头和有效负载计算签名,您还可以验证内容没有被篡改。
JSON Web 令牌如何工作?
Jtw-Diagram(某种序列图)
我们为什么要使用 JSON 网络令牌?
让我们谈谈 JSON Web 令牌 (JWT) 与简单 Web 令牌 (SWT) 和安全断言标记语言令牌 (SAML) 相比的优势。
由于 JSON 不像 XML 那样冗长,因此在编码时它的大小也更小,这使得 JWT 比 SAML 更紧凑。这使得 JWT 成为在 HTML 和 HTTP 环境中传递的不错选择。 ** 不是 jwt 本身属性,它是 json 属性**
在安全方面,SWT 只能通过使用 HMAC 算法的共享密钥进行对称签名。但是,JWT 和 SAML 令牌可以使用 X.509 证书形式的公钥/私钥对进行签名。与签署 JSON 的简单性相比,使用 XML 数字签名签署 XML 而不引入晦涩的安全漏洞是非常困难的。 ** 公钥/私钥对签名不是新的 **
JSON 解析器在大多数编程语言中都很常见,因为它们直接映射到对象。相反,XML 没有自然的文档到对象映射。这使得使用 JWT 比使用 SAML 断言更容易。
关于使用,JWT 用于 Internet 规模。这突出了在多个平台(尤其是移动平台)上客户端处理 JSON Web 令牌的便利性。 **不要解释为什么它在互联网规模上使用(我认为是因为无状态服务器**
【问题讨论】:
-
这是问题还是答案????
-
这只是来自 jwt.io 的复制粘贴。可能是为了提高声誉。
标签: jwt