使用IdentityServer4限制每个用户的并发会话数

时间:2017-11-30 18:15:11

标签: identityserver4

我们有几个用户可能正在与其他用户共享其用户帐户。我们正在考虑在IdentityServer4中添加功能,这限制了用户可以防止此行为的并发会话数。

这不会阻止用户在白天不时共享用户帐户,但我们至少可以停止同时使用我们的系统。

我们正在考虑计算每个用户帐户使用的刷新令牌的数量,如果超过某个限制,则删除该用户最旧的刷新令牌和访问令牌,直到刷新令牌的数量等于允许的数量为止限制。

有关如何使用IdentityServer4实现此功能的任何输入?我们还想告知用户为什么删除了引用令牌因此导致注销。

1 个答案:

答案 0 :(得分:0)

逻辑上,当用户超过其并发会话的限制时,它仍然应该具有身份验证的能力,因此我会投票反对将identityserver视为此类功能的正确位置。

您计划在达到限制时返回给用户的是什么?您无权访问此资源?这听起来不对。

我建议在资源本身中应用此类功能,使用您的应用程序逻辑计算当前会话,然后将用户重定向到告知超出限制的页面。

<强>更新

检查此Github讨论,其中IdentityServer贡献响应相对类似的查询。 https://github.com/IdentityServer/IdentityServer4/issues/736