gpt4 book ai didi

web-services - token 身份验证如何与负载平衡的 Web 服务配合使用

转载 作者:行者123 更新时间:2023-12-01 05:00:25 24 4
gpt4 key购买 nike

我们在我们的一些 ArcGIS Server web 服务上使用基于 token 的安全性,我试图更好地了解它们的工作方式。我们目前必须使用粘性 session ,因为我们有负载平衡服务以实现冗余和性能。然而,我阅读的所有文档(例如下面的文章)都表明,使用 token 身份验证实际上应该消除对粘性 session 的需求。在阅读完所有内容后,我仍然不确定为什么会这样。

如果用户登录并从我们的负载平衡服务器之一接收 token ,并且该 token 随每个后续请求一起传递,那么为什么不需要确保请求在同一台服务器上结束。另一台服务器如何能够验证 token ?根据我的阅读,我能想到的唯一方法是将 token 签名存储在所有负载平衡服务器都可用的中央存储库中。再说一次,这与仅存储 token 本身没有什么不同,这与存储 session 信息相同。

http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543

最佳答案

The only way I can think of based on my readings that this could be made to work without sticky sessions is to store the token signature in a central repository available to all the load balanced servers.



对,那是正确的。链接的文章确实显示了一个持久的 token 存储。

唯一的异常(exception)是使用 JWT(也在链接的文章中),或不存储服务器端 token 的类似机制。

这是因为即使用户名在可以存储在 cookie 客户端的 JWT 中,用户名也受 MAC 保护。此消息身份验证代码使用服务器端 secret 散列用户名。这个 secret 可以在所有负载均衡的服务器之间共享,重新运行 MAC 算法可以确保客户端存储的用户名没有被篡改。

在实践中请记住始终存储到期日期 - 否则您的 JWT 将容易受到重放攻击(例如,有效用户保存其 cookie 值以备后用,当他们可能无法以该用户身份访问时)。

关于web-services - token 身份验证如何与负载平衡的 Web 服务配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484632/

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