我正在将 IdentityServer4
与 Asp.Net Core Identity
一起使用,并且我想在我的 MVC 客户端(连接到 IdentityServer4)中检查用户的 SecurityStamp
已更改。
我的想法是公开 SecurityStamp
就像 id_token
中的声明一样,并在 Cookie
中间件中的某个事件中在我的 MVC 客户端中检查它。
如果用户的安全标记已更改,则需要重新登录。
我想创建此往返,特别是因为我想检查用户的角色是否已更改。
1) 像声明一样公开 SecurityStamp
是一个好的选择吗?
2) 有什么方法可以检查用户的安全印章在 OIDC 中是否仍然有效?或者有必要为此构建我自己的端点?喜欢自己的 API 吗?
最佳答案
我们已经做到了这一点并且效果很好。我将其作为 token 中的 st
声明返回,并通过用户信息端点返回,以便客户端可以轻松检查它是否已更改。
然后,我们要求(内部)客户端定期通过 userinfo 端点检查 st
是否未更改。我们还有一个自定义模拟实现,客户端以相同的方式检查模拟授权撤销。
简而言之 - 是的,这是一个好主意(IMO),不,您不需要构建 API - 只需通过 userinfo 端点公开它即可。
关于asp.net-core - 是否可以公开来自 Asp.Net Core Identity 的安全标记作为 OIDC 的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159989/