身份服务器 - 使用刷新令牌获取更新的声明

identity server - get updated claims with refresh token

我在登录时在来自数据库的访问令牌中放置了一些声明(例如 entity_idrole)。现在在某个阶段,entity_id 声明发生了变化,我需要使用更新后的声明获取新的访问令牌。我这样做是使用刷新令牌来获取新的访问令牌,但它内部带有相同的旧声明;可能是因为在刷新令牌的情况下未调用 class 实现 IResourceOwnerPasswordValidator。那么如何在访问令牌中获取更新的声明呢?因为用户必须注销并重新登录才能更新 entity_idrole 声明。

我知道另一种选择是使用 /userinfo 端点进行声明,但我的问题是在这种情况下 ASP.NET Core 的 [Authorize(Roles = "Manager")] 属性将如何工作并且如果访问令牌中不存在角色,请了解角色?

或者换句话说 - 经常变化的数据不适合用代币声明。

就是说 - 您可以在获取刷新令牌时再次通过配置文件服务管道创建身份服务器 运行 - 请参阅此处:

https://identityserver4.readthedocs.io/en/release/reference/client.html?highlight=UpdateAccessTokenClaimsOnRefresh