IdentityServer4记住我与具有不同超时要求的客户端的Cookie生存期

时间:2018-07-18 03:30:51

标签: identityserver4

我有一个由多个客户端使用的IdentityServer4实现。当前,IdentityServer创建一个会话cookie,该cookie将在浏览器会话的整个过程中保持有效。我想添加“记住我”功能,以便用户会话在浏览器重新启动后将继续存在。

IdentityServer和ASP.Net Identity都具有有关如何执行此操作的清晰示例。问题在于选择最佳到期类型(绝对与滑动)和最佳到期时间,因为每个客户端具有不同的空闲和绝对超时要求。

例如,客户A和B要求绝对有效期为14天;客户C需要30分钟的空闲超时和14天的绝对到期时间。

我正在尝试找出设置Identity Server cookie到期和客户端cookie到期的最佳方法。

我目前的想法是做这样的事情:

  • 身份服务器
    • 记住我未选中-会话cookie
    • 记住我已选中-绝对14天
  • 客户端A-会话cookie
  • 客户端B-会话cookie
  • 客户C-绝对30分钟;在/ connect / authorize请求中发送提示=登录以强制重新认证

优点:

  • 允许的最大会话时间由IdentityServer上的绝对时间控制
  • 客户A和B可以进行14天的单点登录
  • 客户端C可以强制进行重新身份验证以实现更严格的安全性

缺点:

  • 客户端C的cookie在重新启动后可用

我意识到大多数人的要求略有不同。但是我想知道在这种情况下有什么共同点。

提议的解决方案是否存在问题?

您是否会在IdentityServer中使用滑动cookie,因此假设一致使用可能会更宽松。然后强制客户端设置所有到期时间?

是否可以让所有客户端使用会话cookie,但仍然具有不同的空闲超时,以使它们无法在浏览器重新启动后无法幸免并始终返回到IdentityServer?

0 个答案:

没有答案