Asp.net core 是否可以将Asp.Net核心标识中的安全戳公开为OIDC声明

Asp.net core 是否可以将Asp.Net核心标识中的安全戳公开为OIDC声明,asp.net-core,identityserver4,asp.net-core-identity,openid-connect,Asp.net Core,Identityserver4,Asp.net Core Identity,Openid Connect,我正在使用带有Asp.Net核心标识的IdentityServer4,我想在我的MVC客户端(连接到IdentityServer4)中检查用户的SecurityStamp是否已更改 我的想法是公开SecurityStamp,就像在id\u令牌中声明一样,并在Cookie中间件中的某个事件中在我的MVC客户端中检查它 如果用户的安全戳已更改,则需要再次登录 我想创建这个往返,特别是因为我想检查用户的角色是否已更改 1) 像索赔一样公开SecurityStamp是一个好选择吗 2) 有什么方法可以检

我正在使用带有Asp.Net核心标识的
IdentityServer4
,我想在我的MVC客户端(连接到IdentityServer4)中检查用户的
SecurityStamp
是否已更改

我的想法是公开
SecurityStamp
,就像在
id\u令牌中声明一样,并在
Cookie
中间件中的某个事件中在我的MVC客户端中检查它

如果用户的安全戳已更改,则需要再次登录

我想创建这个往返,特别是因为我想检查用户的角色是否已更改

1) 像索赔一样公开
SecurityStamp
是一个好选择吗


2) 有什么方法可以检查用户的安全戳在OIDC中是否仍然有效?还是有必要为此构建自己的端点?就像我们自己的API一样?

我们已经完成了这项工作,并且工作得很好。我将其作为令牌中的
st
声明返回,还可以通过用户信息端点返回,以便客户端轻松检查它是否已更改

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


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

您能分享一些实现细节吗?特别是如何检查客户部分的st索赔?您使用Cookie中间件中的哪个事件?谢谢你。@jenan你自己做过吗,如何确保将安全戳发送到userinfo端点?@Phil我刚刚扩展了DefaultClaimsService以添加我自己的声明,并实现了我自己的IuserInfo ResponseGenerator,它也执行相同的操作。@mackie你是如何将自定义IuserInfo ResponseGenerator注入identity server服务的?@Phil如果你刚刚在启动时注册它的话注册IdentityServer4后,新绑定将覆盖默认值。i、 e.:
services.AddTransient()