首页 > 解决方案 > 是否可以从 Asp.Net Core Identity 公开 Security Stamp 作为 OIDC 的声明

问题描述

我正在使用IdentityServer4withAsp.Net Core Identity并且我想在我的 MVC 客户端(连接到 IdentityServer4)中检查用户的SecurityStamp更改。

我的想法是在中间件中公开SecurityStamp类似的声明id_token并在我的 MVC 客户端中检查它。Cookie

如果用户的安全标记已更改,则需要重新登录。

我想创建这个往返行程,特别是因为我想检查用户的角色是否发生了变化。

1) 揭露SecurityStamp类似的主张是个好选择吗?

2) 有什么方法可以检查用户的安全印章在 OIDC 中是否仍然有效?还是有必要为此建立我自己的端点?喜欢自己的 API?

标签: asp.net-coreidentityserver4asp.net-core-identityopenid-connect

解决方案


我们已经做到了,而且效果很好。我将它作为st令牌中的声明返回,也通过用户信息端点返回,因此客户端很容易检查它是否已更改。

然后,我们要求(内部)客户端通过st未更改的 userinfo 端点定期检查。我们还有一个自定义的模拟实现,客户端以相同的方式检查模拟授权撤销。

简而言之 - 是的,这是一个好主意(IMO),不,你不需要构建 API - 只需通过 userinfo 端点公开它。


推荐阅读