【发布时间】:2016-12-23 11:59:06
【问题描述】:
我正在开发一个使用 JWT 身份验证的 .Net Core Web API(如 here)。
我添加了一个新的 Claim 来存储请求的 ip 地址,然后,我想在每个连续的请求上检查它,以验证请求的 ip 地址源是否与最初请求令牌的 ip 相同。
为此,我做了一个基于自定义策略的身份验证(如here),我想在策略的 AuthorizationHandler 上获取每个请求的 ip,但我无法获得它(this 没有'不适用于 AuthorizationHandler)。
也许这不是我想要的方式,有人可以帮助我吗?
谢谢!
【问题讨论】:
-
您为什么不信任 JWT 并在您的服务中需要这种额外的身份验证?
-
因为如果有人窃取了令牌,我不希望它可以从另一个 ip 使用。也许 JWT 有办法缓解这种情况,我不知道。谢谢@thoean
-
对于一个高度复杂的问题,这听起来过于简单化了。我假设您通过 HTTPS 作为基线加密所有内容,并遵循其他做法来防止 XSS 等攻击。这是一篇有趣的文章开始:auth0.com/forum/t/stealing-jwt-from-authenticated-user/352/12
-
是的,没错。我会读那个链接。谢谢。
-
我也在考虑IP验证。原因是我将我的 API 暴露给有限的来源,他们不应该在允许的场所之外使用它。我不知道这是否是个好主意,但至少对少数攻击者有用。
标签: c# authentication token jwt .net-core