asp.net-core - 是否可以公开来自 Asp.Net Core Identity 的安全标记作为 OIDC 的声明

标签 asp.net-core identityserver4 asp.net-core-identity openid-connect

我正在将 IdentityServer4Asp.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/

相关文章:

single-sign-on - SSO 将身份服务器与 SAML 2 与其他身份提供者一起使用

c# - 运行 MSBuild 时发生内部故障 - 无法加载文件或程序集 System.Net.Primitives

c# - 生成 NSwag 客户端作为构建的一部分

azure - 如何使用 IdentityServer 4 为 Multi-Tenancy 应用程序触发 admin_consent 流程?

identityserver4 - 身份服务器 - 将自定义参数添加到来自 token 端点的 JSON 响应

asp.net-core - 在 Google OAuth 流程中访问 EF DbContext

c# - .net 核心身份,获取特定的注册错误条件

c# - 尝试注册时出现 Microsoft.AspNetCore.Identity.IdentityError

.net - EF Core 一对多关系 : ICollection or Hashset?

c# - 如何防止 SignOutResult 导致重定向循环?