可以在 Keycloak 上禁用多次登录吗?
例子:
我在我的电脑上登录我的浏览器,然后在我的手机上登录……此时,keycloak 使我的另一个浏览器的令牌无效。
有可能的?
看起来很多 Keycloak 用户对这个功能感兴趣,所以我发布了一个我在研究中发现的答案,这个功能是由非官方开发人员实现的,以下是他分享的内容
您可以从我的克隆分支获取身份验证器: https://github.com/mfdewit/keycloak/tree/KEYCLOAK-849-configurable-session-limits/services/src/main/java/org/keycloak/authentication/authenticators/会话限制
我创建了 2 个验证器:
`RealmSessionLimitsAuthenticator`: limits the total number of sessions for a realm.
`UserSessionLimitsAuthenticator`: limits the number of session per user account and per client.
Run Code Online (Sandbox Code Playgroud)
现在我建议您将它们(包括工厂)复制到您自己的项目中,并确保它们在META-INF/services. 另外,将AuthenticationFlowError.SESSION_LIMIT_EXCEEDED错误更改为您的 Keycloak 版本中存在的某个值。SESSION_LIMIT_EXCEEDED由我添加,仅存在于我的功能分支上。
缺点是,如果用户的会话被拒绝,您将无法向用户提供正确的反馈。
如果您对如何使用它们有任何疑问,请告诉我!
关于此任务的状态:我仍然需要编写集成测试才能提交合并请求。但我打算很快完成这件事。如果有人愿意帮助编写这些测试,我将不胜感激。
还是 keycloak 官方 JIRA 我没有发现他们是否在 Keycloak 的任何最新版本中合并了此功能
| 归档时间: |
|
| 查看次数: |
4677 次 |
| 最近记录: |