目前我有一台服务器使用JSON Web令牌来管理用户身份验证 当用户提交有效的身份验证请求时,他们会收到一个JWT,其中包含允许服务器处理身份验证敏感请求的用户ID等信息。
JWT的纯文本正文将采用类似于:
的形式{
"UserID":"100",
"Expires":"(expiryDate)",
"IssuedBy":"ServerOne"
}
但是,正如您可能非常正确地指出的那样,这无法让我们以任何方式验证呈现访问令牌的代理实际上是最初发给它的用户。
因此,如果有人能够获得JWT,那么假设它没有过期,他们将能够承担用户的身份并获得未经授权的访问。
无状态服务器是当前项目的必需品,因此我很难使用涉及服务器跟踪登录用户的解决方案。
是否有可能以这种方式使用令牌实现安全性?
我已经对这个主题做了一些阅读,我记得有人建议使用像“X-Forwarded-For”标题之类的东西,然后将用户的IP放在令牌中,然后将两者进行比较,但这样做了自己的缺点。
答案 0 :(得分:1)
目前OAuth 2.0 / JWT空间中有一些规范,试图解决这个问题。请查看RFC 7800和this draft。
有几个商业授权服务器/身份提供商已经支持RFC 7800和一些开源实现。