【问题标题】:How to update claims or logout a user immediately when changes made on IdentityServer?在 IdentityServer 上进行更改时,如何立即更新声明或注销用户?
【发布时间】:2016-04-27 14:54:30
【问题描述】:

到目前为止,我在 Web 应用程序中使用基于声明的解决方案遇到的问题是,如果在 SSO 服务器上撤销声明或删除用户帐户,则用户的令牌仍在他们的 cookie 中,因此仍然有效,直到令牌过期,允许他们继续访问 Web 应用程序。有没有办法在服务器上进行更改后立即强制更新用户的令牌或强制撤销令牌(或者每次用户尝试加载页面时都与身份服务器核对?)?更新声明也是如此……有时我们会添加权利。用户必须注销并重新登录非常烦人。请帮助。我们正在使用 C# Web Apps 和 Thinktecture IdentityServerv3

【问题讨论】:

  • 如果您如此频繁地更改声明,那么也许您不应该将它们放入 cookie 中。当然,这是声明的副本。
  • @BrockAllen 我怎样才能仍然使用声明但不将它们放入 cookie 中?另外,如果我从 IdentityServer 中删除他们的帐户,是否有任何方法可以取消对用户的授权,以便他们无法再使用该网站?
  • 如果/当您需要有关用户的更多信息时,您可以使用声明转换或只是往返数据库。这是不将声明放入 cookie 的权衡。
  • @BrockAllen 我一定遗漏了一些东西......我已经部署了 IDS,在我看来,cookie 总是包含所有令牌。我如何从应用程序到数据库进行往返(我不知道你的意思是什么......你的意思是往返于 IDS 吗??)

标签: thinktecture-ident-server identityserver3


【解决方案1】:

您可以使用刷新令牌和更短的身份验证令牌生命周期来强制客户端定期返回。这不是立即撤销,但它是一种简单的方法,您可以使用它来缩短服务器撤销和客户端更改之间的时间。

Refresh tokens

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 2021-06-22
    • 1970-01-01
    • 2021-12-25
    • 2017-04-17
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多