WSO2 IS如何调整同账号多端登录的会话限制规则
WSO2 Identity Server 同账号多会话共存配置方法
WSO2 IS默认的「新登录触发同账号所有旧会话强制注销」逻辑是产品内置的默认安全策略,完全可以通过内置配置项修改,不需要二次开发调整源码。
可调整的配置路径
方法1:管理控制台可视化配置(推荐,适用于5.10及以上版本)
- 使用管理员账号登录WSO2 IS管理控制台
- 依次进入 Identity Providers > Resident 配置页面
- 展开Login Policies > Session Management配置板块
- 找到并发会话管理相关配置项:
- 取消勾选Terminate all existing sessions when a user logs in 选项,关闭新登录强制注销旧会话的开关
- 若需要控制同账号最大同时在线数,可在
Maximum concurrent sessions per user项填写对应数值,填写-1代表不限制同账号并发会话数量 - 同板块可同步调整会话超时时间、会话持久化等相关参数
- 保存配置后重启WSO2 IS服务,配置即可全局生效
方法2:配置文件直接修改(适用于全版本,无控制台权限时使用)
- 打开WSO2 IS部署目录下的配置文件:
- 5.10及以上版本:修改
<IS_HOME>/repository/conf/deployment.toml - 5.9及更早版本:修改
<IS_HOME>/repository/conf/identity/identity.xml
- 5.10及以上版本:修改
- 对应版本添加/修改配置参数:
5.10+版本在deployment.toml中添加如下配置段:
5.9及更早版本在identity.xml中找到[session.persistence] enable_session_persistence = true [authentication.authenticator.basic.parameters] TerminateAllSessionsOnNewLogin = false MaxConcurrentSessions = -1<SessionManagement>节点,修改为如下内容:<SessionManagement> <TerminateAllSessionsOnNewLogin>false</TerminateAllSessionsOnNewLogin> <MaxConcurrentSessionsPerUser>-1</MaxConcurrentSessionsPerUser> <EnableSessionPersistence>true</EnableSessionPersistence> </SessionManagement> - 保存文件后重启所有WSO2 IS节点(集群部署需保证所有节点配置一致),新的会话管控规则即可生效
配置注意事项
- 关闭新登录强制注销旧会话的逻辑后,账号共用场景下的未授权访问风险会上升,建议搭配多因素认证、异常登录检测能力使用,降低账号泄露后的安全风险
- 若设置为不限制并发会话数,建议适当缩短会话非活跃超时时间,避免大量僵尸会话占用系统资源,影响认证服务性能
- 若仅需要对特定用户/用户组放开多会话限制,不需要全局修改策略,可以通过自定义认证事件监听器的方式实现细粒度管控,不需要改动核心会话逻辑
内容的提问来源于stack exchange,提问作者Vaisakh Gopinath
相关产品推荐
相关产品推荐

