gpt4 book ai didi

JWT 令人困惑。应用服务器如何认证?

转载 作者:行者123 更新时间:2023-12-02 09:14:09 28 4
gpt4 key购买 nike

This article除了最后一部分,JWT 上的内容非常清晰。

我理解的部分:1.编码不同于加密。2. token的部分(header base64 encoded, payload base64 encoded, header+payload用公钥和指定算法加密的签名)

但是我不明白第5部分是如何处理token验证的。我也不明白为什么header和payload需要进行Base64编码。鉴于它不安全或加密...编码的部分是什么?

*****编辑****

我的理解是否正确,因为 JWT 包含一个编码的 header 和负载...应用服务器可以只使用它的 key (可能是非对称加密机制中的公钥)来加密包含的有效载荷和 header ,如果它到达相同的包含 JWT 签名......那么应用程序服务器知道数据没有被篡改并且用户确实通过身份验证服务器进行了身份验证。这样对吗?

如果签名不匹配。这意味着什么?

最佳答案

JWT 使用 base64Url 编码(参见 https://www.rfc-editor.org/rfc/rfc7519#section-3 ),它避免了字符 +/= 是 URI 的保留字符(参见 https://www.ietf.org/rfc/rfc2396.txt 中的第 2.2 节)
这是有道理的,因为在某些情况下, token 作为 url 中的参数传输。

如果使用非对称算法,哈希是用私钥完成的,因此任何知道公钥的人都不可能创建新的签名。

教程中的第 5 步只是告诉您,应用程序服务器将使用与身份验证服务器相同的 key 从 header 和有效负载创建哈希,并比较它是否获得与它在要求。不匹配签名的含义是有人更改了 token ,因此 token 被视为无效并且授权将被拒绝。从技术上讲,操作 JWT 的 header 和有效负载非常容易,只需解码 base64url 编码部分,更改 JSON 结构中的一些值,例如。过期时间exp,重新编码。但是,如果不知道私钥,您将无法为其创建有效签名。

查看 https://jwt.o并在调试窗口中使用示例标记来查看效果。

关于JWT 令人困惑。应用服务器如何认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48755092/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com