刷新 IdentityServer-Clients 中的角色

Refresh Roles in IdentityServer-Clients

我有一个 identityServer 和一些客户端,它工作得很好。我的问题是,当其中一位管理员更改用户的角色时,客户需要注册并登录才能获得新的声明和角色。

我的问题是,有没有办法让角色在更改角色后自动更新,而无需注销和登录?

如有任何帮助,我将不胜感激:)

您可以在客户端定义中将此标志设置为 true,以便在刷新时重新加载访问令牌中的声明

UpdateAccessTokenClaimsOnRefresh 获取或设置一个值,该值指示是否应根据刷新令牌请求更新访问令牌(及其声明)。

https://docs.duendesoftware.com/identityserver/v5/reference/models/client/

对于刷新令牌,我添加了一些训练中的图片 class,这些图片可能会更好地了解刷新令牌(您使用 offline_Access 范围请求它们)

当您请求该范围并同意后,您将获得一个额外的“刷新令牌”

然后使用刷新令牌,您可以请求新的访问令牌。

图片(摘自我的训练 class)显示了滑动刷新标记的工作原理:

当访问令牌即将过期时,您确实要求一个新令牌(使用刷新令牌)。访问令牌的生命周期比刷新令牌短。

您可以手动执行此操作,也可以使用 IdentityModel.AspNetCore 等库为您执行此操作。