如何使用身份服务器4 JWT身份验证和资源所有者密码授予来使jwt访问令牌无效或撤销?

问题描述 投票:0回答:2

我们已经在身份服务器上使用了JWT身份验证方案和资源所有者密码授予类型。后端是基于.Net核心的微服务,它提供对基于角度的前端网站的访问令牌。

由于jwt令牌不可撤消,并且业务要求是具有更长的访问令牌生存期,所以似乎唯一的选择是在数据库或缓存中跟踪列入黑名单的令牌。

有什么方法可以修改后端的访问令牌并使它在用户触发从前端注销时立即过期?

asp.net-core asp.net-core-webapi identityserver4 asp.net-core-2.2
2个回答
0
投票

JWT令牌存储在浏览器中,因此您可以删除它的cookie。但是此选项在服务器端没有任何安全性。

如果您担心已删除/已暂停的帐户,则可以,您要么创建一个黑名单,但必须针对每个请求对它们进行比较。

另一个选择是减少到期时间并轮换它们。 Invalidating JSON Web Tokens

中有更多详细信息

0
投票

JWT无法撤销,它是设计使然,因为它是独立的。可撤销的替代方案是Reference token,它不是自包含的,因此服务器需要与身份服务器进行主动通信。

折衷和通用方法是将访问令牌生存期设置为较低的值,并增加刷新令牌生存期。刷新令牌是可撤销的-身份服务器4也支持该令牌。因此,这完全是与Identity Server的通信频率和较长的访问令牌寿命之间的折衷。

© www.soinside.com 2019 - 2024. All rights reserved.