登录安全策略
本章介绍控制台「登录安全」页的全部配置:密码内容要求、登录失败锁定与验证码、会话空闲超时、访问来源校验。
本页只有一份策略,全实例共用,不区分部门或用户组。
1. 页面构成
功能入口:控制台 →「登录安全」。
页面分为三个分组:
| 分组 | 作用范围 |
|---|---|
| 密码内容策略 | 仅对本实例自建的账户生效。由企业目录(LDAP/AD)管理的账户,其密码规则由企业目录负责,本系统不介入 |
| 登录行为策略 | 对所有登录方式生效,包括通过企业目录验证密码的登录方式 |
| 访问来源 | 校验请求的来源地址,接口请求与实时连接共用这一项设置 |

密码内容策略:最小长度、字符类型和历史复用限制
2. 密码内容策略
| 配置项 | 默认值 | 取值范围 | 说明 |
|---|---|---|---|
| 密码最小长度 | 8 | 1 ~ 64 | |
| 最少字符类型数 | 2 | 1 ~ 4 | 字符类型共四类:大写、小写、数字、符号 |
| 密码有效期(天) | 0 | 0 ~ 3650 | 0 表示永不过期。超过有效期的用户在登录成功后被要求修改密码 |
| 禁止复用的历史密码条数 | 0 | 0 ~ 24 | 为 0 时仍禁止将新密码设为与当前密码相同 |
| 首次登录强制改密 | 开启 | 开关 |
2.1 修改策略对已有密码的影响
收紧密码规则不会使现有密码失效。 最小长度与字符类型要求只在用户修改密码时执行,已经在用的弱密码不会被强制更换,用户也不会收到改密提示。
若需要全员更换密码,应配合密码有效期使用,或由管理员逐个重置。
2.2 开启密码有效期的注意事项
系统按"上次修改密码的时间"判断密码是否过期。对于从未修改过密码的历史账户,改用账户创建时间起算。
⚠️ 首次开启密码有效期时,创建时间较久且从未改过密码的账户,会在下次登录时立即被要求修改密码。 这是预期行为。若实例中此类账户较多,建议提前告知用户。
2.3 不受本分组约束的路径
以下三条路径不执行密码内容策略:
| 路径 | 实际规则 |
|---|---|
| 管理员在控制台新建用户时设置初始密码 | 仅要求最少 6 位 |
| 管理员重置用户密码 | 仅要求最少 6 位 |
| 通过表格文件批量导入用户 | 系统生成 12 位随机密码(含四类字符),并强制用户首次登录时修改 |
前两条是有意保持宽松的管理通道,同时这两条路径也不写入密码历史记录,即重置后的密码不会占用"禁止复用"的名额。但两者都会记录一次改密时间,参与密码有效期的计算。

密码内容策略:最小长度、字符类型和历史复用限制

已保存的密码策略:最小长度12、至少3类字符、禁止复用最近3条密码
3. 登录行为策略
| 配置项 | 默认值 | 取值范围 | 说明 |
|---|---|---|---|
| 连续失败锁定阈值(次) | 5 | 1 ~ 100 | 达到该次数后账户自动锁定 |
| 失败计数窗口(分钟) | 15 | 至多 10080 | 超过该时间窗口的失败不计入连续次数,重新开始计数 |
| 锁定时长(分钟) | 15 | 1 ~ 10080 | 锁定后需等待该时长才能再次尝试 |
| 强制每次登录都验证码 | 关闭 | 开关 | 开启后每次登录均需输入验证码 |
| 触发验证码所需失败次数 | 3 | 0 ~ 100 | 连续失败达到该次数后登录需输入验证码。0 表示关闭该判定 |
| 会话空闲超时(分钟) | 0 | 0 ~ 525600 | 0 表示永不过期。以最后一次操作时间计算 |
3.1 两个验证码配置的关系
开启「强制每次登录都验证码」后,「触发验证码所需失败次数」将变为不可编辑状态。 界面上前者排列在后者之上,便于观察这一联动关系。
注意:界面对该开关的说明文字写为"与上方失败次数阈值互相独立",但实际行为是开启后禁用该阈值项。以实际行为为准。
3.2 锁定的解除
账户锁定后,等待「锁定时长」设定的分钟数即自动解除,无需管理员干预。需要提前解除时,由管理员在用户管理中对该账户执行重置密码,该操作会一并解除锁定并清零失败计数。
3.3 通过企业目录登录时的锁定行为
使用企业目录(LDAP/AD 等)验证密码的登录方式,其凭据错误同样计入本系统的失败计数与锁定。本系统的计数与企业目录自身的锁定机制相互独立,互不覆盖。
以下两种情况不计入失败次数:
- 密码正确但已过期、或账户已被企业目录锁定——这类情况凭据本身无误或已由对方处置;
- 企业目录服务不可用导致的验证失败——属服务故障,非凭据错误。
3.4 修改策略对已登录用户的影响
| 配置项 | 对已登录会话的影响 |
|---|---|
| 会话空闲超时 | 不影响。该值在用户登录建立会话时即固定写入该次会话,之后按会话内记录的值计算。将超时从 0 改为 30 分钟,已在线的会话不会因此开始计时,仅对之后的新登录生效 |
| 锁定阈值、验证码阈值 | 立即生效于现有失败计数。失败次数累计在账户上,调低阈值会使已有较高失败次数的账户立刻越过阈值 |
| 强制每次登录都验证码 | 立即生效 |

登录行为策略:失败锁定、验证码阈值与空闲超时

验证码策略生效:登录失败后要求先完成图形验证码
4. 访问来源
该功能用于校验请求的来源地址,防止其他网站借用用户已登录的身份,向本系统发起操作。
4.1 三种模式
| 模式 | 行为 | 适用阶段 |
|---|---|---|
| 关闭 | 默认值。不校验,也不记录 | 初始状态 |
| 观察 | 不拦截任何请求,但记录白名单之外的来源 | 启用强制前的准备阶段。先运行一段时间,据记录结果配置白名单 |
| 强制 | 拒绝白名单之外的来源,并记入系统日志 | 白名单配齐后 |
建议按「关闭 → 观察 → 强制」的顺序推进,不要直接启用强制。
4.2 允许的来源
白名单的格式为 http(s)://主机[:端口],不包含路径,例如 http://192.168.1.10:9527。格式不符时提示「格式不正确,应为 http(s)😕/主机[:端口],不含路径」。
与本系统同源的访问无需列入白名单。 需要列入的是那些通过不同地址访问本系统的情况,例如前后端分离部署、或经过反向代理改写了主机名的部署。
界面会显示「当前访问地址」并提供一键加入白名单的入口,是否已在白名单中也会一并标示。
4.3 观察到的来源
「观察到的来源」列出白名单之外、且与本系统不同源的请求来源,显示出现次数与最近出现时间,并标明来自接口请求还是实时连接。可直接从该列表将来源加入白名单。
该列表仅保存在服务进程内存中,服务重启后清空,且容量有限。它是配置白名单的辅助视图,不能作为审计记录使用。需要审计请使用日志中心。
4.4 防止将自己锁在门外
由于本配置页本身需要登录才能访问,若启用强制模式时遗漏了管理员当前使用的访问地址,将导致无人能够登录,且修复入口同时失效。系统提供两道防护:
保存时自检:选择强制模式保存时,系统会用即将保存的配置校验本次保存请求本身。若校验不通过,保存被拒绝并指出当前来源,提示需先将其加入白名单。
紧急恢复通道:若已经发生锁定,可由部署人员在服务器上设置环境变量 KIMPO_ORIGIN_GUARD=off 并重启服务,该设置会覆盖页面上的配置,使来源校验恒不生效。此时页面顶部显示「已被环境变量 KIMPO_ORIGIN_GUARD=off 强制关闭:移除该变量并重启服务前,以下设置不会生效」。

访问来源设置:观察模式、允许来源和观察记录

访问来源观察模式已启用;观察记录在服务重启后清空
5. 配置示例:启用访问来源校验
- 将校验模式设为观察并保存;
- 运行数日,使各类使用场景(不同办公网络、移动端、外部访问等)都产生过访问;
- 打开「观察到的来源」,核对列出的来源是否均为可信地址;
- 将确认无误的来源逐个加入白名单,确保包含管理员当前的访问地址;
- 保存后将模式改为强制,再次保存。若保存被拒绝,按提示将当前来源加入白名单后重试;
- 更换新的访问地址(如变更域名、新增反向代理)前,先将新地址加入白名单。
6. 使用限制与注意事项
| 限制 | 说明 |
|---|---|
| 收紧密码规则不影响现有密码 | 需要全员换密码时,应配合密码有效期或逐个重置 |
| 首次开启密码有效期会波及老账户 | 从未改过密码的账户将在下次登录被要求改密 |
| 管理员建号与重置密码不执行密码规则 | 仅要求 6 位,且不写入密码历史 |
| 会话空闲超时对已在线会话无效 | 仅对之后的新登录生效 |
| 观察到的来源在服务重启后清空 | 不能作为审计依据 |
| 验证码说明文字与实际行为不一致 | 开启强制验证码后,失败次数阈值会被禁用 |