页面树结构
转至元数据结尾
转至元数据起始

概述

用户登录管理提供了双因素验证、登录锁定的功能,主要目的是 高账户的安全性,防御密码泄露风险、防止暴力破解。结合 密码+动态验证方式登录、密码多次错误即锁定账号等手段,可以大大降低黑客通过暴力破解或猜测密码等手段获取用户账户控制权的可能性。

作用

双因素验证、登录锁定的作用主要体现在以下几个方面:

  • 强化密码泄露防护:即便密码遭窃取,攻击者仍需突破第二层验证,极大降低了单纯因密码泄露导致账户被入侵的可能性。而密码多次错误即锁定账号这一机制,可有效阻止攻击者通过不断尝试密码进行暴力破解,进一步强化了密码泄露后的防护。
  • 抵御自动化攻击:机器人或暴力破解工具难以同时绕过密码和动态验证(如实时生成的动态码),密码多次错误即锁定账号也增加了攻击者的破解成本和时间,有效降低了系统被突破的风险。
  • 满足安全合规要求:能够满足 GDPR、HIPAA 等法规对敏感数据保护的要求,避免法律风险,同时密码多次错误即锁定账号等措施也体现了对账户安全管理的严格把控,符合合规标准。

1 双因素验证

注意

1、双因素验证需要更新移动端APP、插件端插件方可正常使用!

2、双因素验证功能与单点登录功能不兼容,若使用了CAS、LDAP/AD、OAuth等扩展包或在第三方系统中实现了单点登录Smartbi的逻辑,则开启双因素验证功能后可能会导致登录异常!

双因素验证默认不启用,当对用户登录安全性要求较高时启用,支持3种双因素验证方式:

  • 短信验证:通过用户名+密码+短信验证码进行登录;短信验证码会以短信的方式发送到用户预留在系统中的手机号码。
  • 邮件验证:通过用户名+密码+邮件验证码进行登录;邮件验证码会以邮件的方式发送到用户预留在系统中的邮箱账号。
  • 文字验证:通过用户名+密码+动态文字验证码进行登录;动态文字随机生产并直接在界面上显示。

双因素验证具体使用效果及限制:

1)短信验证

前置条件:

a.参考 接入短信服务 接入短信服务,并配置好需要的短信服务模板。

b.参考使用短信验证码模板 ,在“短信验证码短信模板”设置中,选择对应的模板,配置好参数映射,

动态参数支持:验证码,有效时间。

c.在“用户管理”功能中(参考 用户),配置好用户的“手机号码”属性。

应用效果


2)邮件验证

前置条件:

a.参考 公共设置-邮件设置 配置好发送邮件的服务器等信息。

b.参考下图,在“邮件验证码邮件模板”设置好对应的邮件发送模板

应用效果

3)文字验证

直接启用即可,应用效果如下

注:验证码不区分大小写。


2 登录锁定

登录锁定提供 “密码错误次数超限锁定”、“未登录天数超限锁定”两种锁定策略,及 “管理员解锁”功能。

1)密码错误次数超限锁定

密码错误次数超限锁定,用于设置用户登录时,密码错误达到一定的次数时,临时锁定账号或IP一段时间。

设置项

设置项

说明

默认值


密码错误次数限制(次)

【功能】

限定用户登录时密码错误次数,达到设定值即锁定对应IP或账号。

可输入值范围:1 (含) - 10 (含)。

5

密码错误次数超限后锁定时长(分钟)

【功能】

设置账号或 IP 因密码错误超限被锁定的时长。锁定时长结束后,自动解锁。

可输入值范围:1 (含)-1440 (含)。

5
密码错误次数超限后锁定对象

【功能】

设置因密码错误超限被锁定的对象是账号还是IP。

注意

由于受到部署架构(如使用nginx分发等)的影响,系统未必能够获取到客户端真实IP。通过 运维设置-操作日志查看“登录”类型的日志,检查不同客户端IP是否相同。

若不同客户端IP相同,代表系统无法获取到客户端真实IP,则不推荐锁定对象设置为“IP”。在此种情况下,锁定对象切换为IP后,一旦发生锁定,所有用户将无法登录系统。

账号


功能效果

a.当输入错误密码未达到“密码错误次数限制(次)”时,效果如下:

b. 当输入错误密码达到设定的次数时,提示如下:

锁定对象为IP时,提示文案为“当前网络环境存在风险,登录功能已临时禁用,请N分钟后重试或联系管理员。”,避免文案中提到IP字眼,从而致使攻击者可以调整攻击策略。


解锁

锁定倒计时结束后,系统将自动解锁;也可通过管理员解锁功能进行手动解锁。

2)未登录天数超限账号锁定

未登录天数超限账号锁定,用于设置账号在未登录达到一定天数后,锁定用户账号。用户需通过管理员解锁功能进行解锁,方可正常登录。

设置项

设置项

说明

锁定未登录天数超限的账号(天)

【功能】

设置账号在未登录达到一定天数后被锁定。

可输入值范围:1 (含) ~ 2650 (含);置空表示不进行锁定。

锁定对象为:账号。


功能效果

解锁

未登录天数超限账号锁定,必须通过管理员解锁功能进行手动解锁。


3)管理员解锁

“管理员解锁”功能 支持对被锁定的 IP 和用户账号进行手动解锁,以恢复其正常访问和使用。

界面及功能如下:

①搜索:支持输入关键词进行搜索,搜索内容为“锁定对象”列。

②全部解锁:支持对系统中所有锁定的IP和账号进行一键解锁。

③刷新:点击刷新列表

④锁定列表:列表显示系统中所有的锁定对象及其相关信息。

    其中仅“密码错误次数超限”的锁定对象存在“自动解锁时间”;“自动解锁时间””根据账号/IP被锁定的时间和 设置项“密码错误次数超限后锁定时长(分钟)”相加得到。

⑤解锁:支持对单个锁定对象进行解锁。解锁后需刷新登录界面再进行登录操作。

用户登录管理常见问题

1 开启短信验证或邮箱验证,验证码的有效期是多少?

答复:验证码的有效期为10分钟。建议在 短信验证码短信模板、邮件验证码邮件模板中,将验证码有效期一起发送给用户。

2 文字验证码是否区分大小写?

答复:不区分大小写。

3 未登录天数超限锁定账号,如何判断用户已经超过设定的天数未登录?

答复:

通过 用户本次登录的日期时间 - 用户上次登录日期时间 计算得到。

举例:当 “锁定未登录天数超限的账号(天)”设置为1天,某用户在2025-04-01 10:00:00 登陆过。

则在第二天 即  2025-04-02 10点及之前,用户可正常登录系统;若用户在2025-04-12 10点之后登录,例如在 2025-04-02 10:05:00 进行登录,则会被锁定,因为2025-04-02 10:05:00  -  2025-04-01 10:00:00  > 24小时,已超过设置的1天。

注意

1、若用户创建后重未登录过系统,则以用户的创建时间为该用户最后一次登录时间。

2、若用户未登录天数已超限,但是用户并未尝试过登录系统,系统并不会对用户自动进行锁定。而是在用户尝试登录时,触发锁定动作。

4 若管理员账号也被锁定,该如何处理?

答复:

1)可通过其他有权限操作“系统选项”的用户,登录系统进行手动解锁。若所有有权限的用户均无法登录,则可参考下面的方案

2)若是因为密码错误次数超限被锁定,则可以访问知识库,找到t_loginlock表,删除对应的记录,再进行登录即可。若删除对应记录后,再次进行登录依然报被锁定无法登录,则需尝试重启服务器。

3)若是因为未登录天数超限被锁定,则按照2)操作后,还需要找到t_systemconfig表,将 c_key 为 "WRONG_PASSWORD_LOCK_UNLOGIN_DAYS” 这一行的 c_value清空,重启服务器即可。此方案相当于将“锁定未登录天数超限的账号(天)”设置项的值设为空。

5 当系统中存在账号未启用、开启双因素验证、密码错误次数超限锁定等各种情况时,登录的逻辑是什么?

答复:按照如下流程图顺序进行验证。

6 当密码错误次数超限、未登录天数超限账号锁定相关的设置项变更时,对已经锁定、未锁定的账号/IP会产生什么影响?

答复:按照如下逻辑处理。

功能变更的设置项假设场景影响范围
密码错误次数超限锁定密码错误次数限制(次)用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,将重新从0开始计算用户密码错误的次数。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
密码错误次数超限后锁定时长(分钟)用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,若用户继续输入错误密码触发锁定时,锁定时长为变更后的值。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
密码错误次数超限后锁定对象用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,将重新从0开始计算用户密码错误的次数。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
未登录天数超限锁定锁定未登录天数超限的账号(天)账号未登录天数未超限该设置项变更,在用户尝试登录时,会根据变更后的值计算账号的未登录天数是否超限。
账号未登录天数已超限,但用户未尝试登录该设置项变更,在用户尝试登录时,会根据变更后的值计算账号的未登录天数是否超限。
账号已被锁定该设置项变更不影响已被锁定的账号。

7 怎么统计系统中历史的锁定记录?

答复:可通过 运维设置 - 系统运维工具- 操作日志,查看 操作类型为“锁定用户”的记录。

若需要统计手动解锁的记录,查看操作类型为“解锁用户”的记录即可。

注意

密码错误次数超限被锁定的对象,自动解锁并不会记录操作日志!

8 密码错误次数超限锁定对象设置为IP,为什么锁定的IP是下面这种数据?

答复:该地址为IPv6地址,且出现ipv6地址通常是因为在服务器所在电脑上通过 http://localhost:port/smartbi等方式访问。建议通服务器实际IP或服务器域名地址访问系统。





概述

用户登录管理提供了双因素验证、登录锁定的功能,主要目的是 高账户的安全性,防御密码泄露风险、防止暴力破解。结合 密码+动态验证方式登录、密码多次错误即锁定账号等手段,可以大大降低黑客通过暴力破解或猜测密码等手段获取用户账户控制权的可能性。

作用

双因素验证、登录锁定的作用主要体现在以下几个方面:

  • 强化密码泄露防护:即便密码遭窃取,攻击者仍需突破第二层验证,极大降低了单纯因密码泄露导致账户被入侵的可能性。而密码多次错误即锁定账号这一机制,可有效阻止攻击者通过不断尝试密码进行暴力破解,进一步强化了密码泄露后的防护。
  • 抵御自动化攻击:机器人或暴力破解工具难以同时绕过密码和动态验证(如实时生成的动态码),密码多次错误即锁定账号也增加了攻击者的破解成本和时间,有效降低了系统被突破的风险。
  • 满足安全合规要求:能够满足 GDPR、HIPAA 等法规对敏感数据保护的要求,避免法律风险,同时密码多次错误即锁定账号等措施也体现了对账户安全管理的严格把控,符合合规标准。

1 双因素验证

注意

1、双因素验证需要更新移动端APP、插件端插件方可正常使用!

2、双因素验证功能与单点登录功能不兼容,若使用了CAS、LDAP/AD、OAuth等扩展包或在第三方系统中实现了单点登录Smartbi的逻辑,则开启双因素验证功能后可能会导致登录异常!

双因素验证默认不启用,当对用户登录安全性要求较高时启用,支持3种双因素验证方式:

  • 短信验证:通过用户名+密码+短信验证码进行登录;短信验证码会以短信的方式发送到用户预留在系统中的手机号码。
  • 邮件验证:通过用户名+密码+邮件验证码进行登录;邮件验证码会以邮件的方式发送到用户预留在系统中的邮箱账号。
  • 文字验证:通过用户名+密码+动态文字验证码进行登录;动态文字随机生产并直接在界面上显示。

双因素验证具体使用效果及限制:

1)短信验证

前置条件:

a.参考 接入短信服务 接入短信服务,并配置好需要的短信服务模板。

b.参考使用短信验证码模板 ,在“短信验证码短信模板”设置中,选择对应的模板,配置好参数映射,

动态参数支持:验证码,有效时间。

c.在“用户管理”功能中(参考 用户),配置好用户的“手机号码”属性。

应用效果


2)邮件验证

前置条件:

a.参考 公共设置-邮件设置 配置好发送邮件的服务器等信息。

b.参考下图,在“邮件验证码邮件模板”设置好对应的邮件发送模板

应用效果

3)文字验证

直接启用即可,应用效果如下

注:验证码不区分大小写。


2 登录锁定

登录锁定提供 “密码错误次数超限锁定”、“未登录天数超限锁定”两种锁定策略,及 “管理员解锁”功能。

1)密码错误次数超限锁定

密码错误次数超限锁定,用于设置用户登录时,密码错误达到一定的次数时,临时锁定账号或IP一段时间。

设置项

设置项

说明

默认值


密码错误次数限制(次)

【功能】

限定用户登录时密码错误次数,达到设定值即锁定对应IP或账号。

可输入值范围:1 (含) - 10 (含)。

5

密码错误次数超限后锁定时长(分钟)

【功能】

设置账号或 IP 因密码错误超限被锁定的时长。锁定时长结束后,自动解锁。

可输入值范围:1 (含)-1440 (含)。

5
密码错误次数超限后锁定对象

【功能】

设置因密码错误超限被锁定的对象是账号还是IP。

注意

由于受到部署架构(如使用nginx分发等)的影响,系统未必能够获取到客户端真实IP。通过 运维设置-操作日志查看“登录”类型的日志,检查不同客户端IP是否相同。

若不同客户端IP相同,代表系统无法获取到客户端真实IP,则不推荐锁定对象设置为“IP”。在此种情况下,锁定对象切换为IP后,一旦发生锁定,所有用户将无法登录系统。

账号


功能效果

a.当输入错误密码未达到“密码错误次数限制(次)”时,效果如下:

b. 当输入错误密码达到设定的次数时,提示如下:

锁定对象为IP时,提示文案为“当前网络环境存在风险,登录功能已临时禁用,请N分钟后重试或联系管理员。”,避免文案中提到IP字眼,从而致使攻击者可以调整攻击策略。


解锁

锁定倒计时结束后,系统将自动解锁;也可通过管理员解锁功能进行手动解锁。

2)未登录天数超限账号锁定

未登录天数超限账号锁定,用于设置账号在未登录达到一定天数后,锁定用户账号。用户需通过管理员解锁功能进行解锁,方可正常登录。

设置项

设置项

说明

锁定未登录天数超限的账号(天)

【功能】

设置账号在未登录达到一定天数后被锁定。

可输入值范围:1 (含) ~ 2650 (含);置空表示不进行锁定。

锁定对象为:账号。


功能效果

解锁

未登录天数超限账号锁定,必须通过管理员解锁功能进行手动解锁。


3)管理员解锁

“管理员解锁”功能 支持对被锁定的 IP 和用户账号进行手动解锁,以恢复其正常访问和使用。

界面及功能如下:

①搜索:支持输入关键词进行搜索,搜索内容为“锁定对象”列。

②全部解锁:支持对系统中所有锁定的IP和账号进行一键解锁。

③刷新:点击刷新列表

④锁定列表:列表显示系统中所有的锁定对象及其相关信息。

    其中仅“密码错误次数超限”的锁定对象存在“自动解锁时间”;“自动解锁时间””根据账号/IP被锁定的时间和 设置项“密码错误次数超限后锁定时长(分钟)”相加得到。

⑤解锁:支持对单个锁定对象进行解锁。解锁后需刷新登录界面再进行登录操作。

用户登录管理常见问题

1 开启短信验证或邮箱验证,验证码的有效期是多少?

答复:验证码的有效期为10分钟。建议在 短信验证码短信模板、邮件验证码邮件模板中,将验证码有效期一起发送给用户。

2 文字验证码是否区分大小写?

答复:不区分大小写。

3 未登录天数超限锁定账号,如何判断用户已经超过设定的天数未登录?

答复:

通过 用户本次登录的日期时间 - 用户上次登录日期时间 计算得到。

举例:当 “锁定未登录天数超限的账号(天)”设置为1天,某用户在2025-04-01 10:00:00 登陆过。

则在第二天 即  2025-04-02 10点及之前,用户可正常登录系统;若用户在2025-04-12 10点之后登录,例如在 2025-04-02 10:05:00 进行登录,则会被锁定,因为2025-04-02 10:05:00  -  2025-04-01 10:00:00  > 24小时,已超过设置的1天。

注意

1、若用户创建后重未登录过系统,则以用户的创建时间为该用户最后一次登录时间。

2、若用户未登录天数已超限,但是用户并未尝试过登录系统,系统并不会对用户自动进行锁定。而是在用户尝试登录时,触发锁定动作。

4 若管理员账号也被锁定,该如何处理?

答复:

1)可通过其他有权限操作“系统选项”的用户,登录系统进行手动解锁。若所有有权限的用户均无法登录,则可参考下面的方案

2)若是因为密码错误次数超限被锁定,则可以访问知识库,找到t_loginlock表,删除对应的记录,再进行登录即可。若删除对应记录后,再次进行登录依然报被锁定无法登录,则需尝试重启服务器。

3)若是因为未登录天数超限被锁定,则可以访问知识库,找到t_systemconfig表,将 c_key 为 "WRONG_PASSWORD_LOCK_UNLOGIN_DAYS” 这一行的 c_value清空,重启服务器即可。此方案相当于将“锁定未登录天数超限的账号(天)”设置项的值设为空。

5 当系统中存在账号未启用、开启双因素验证、密码错误次数超限锁定等各种情况时,登录的逻辑是什么?

答复:按照如下流程图顺序进行验证。

6 当密码错误次数超限、未登录天数超限账号锁定相关的设置项变更时,对已经锁定、未锁定的账号/IP会产生什么影响?

答复:按照如下逻辑处理。

功能变更的设置项假设场景影响范围
密码错误次数超限锁定密码错误次数限制(次)用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,将重新从0开始计算用户密码错误的次数。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
密码错误次数超限后锁定时长(分钟)用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,若用户继续输入错误密码触发锁定时,锁定时长为变更后的值。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
密码错误次数超限后锁定对象用户尝试登录,但是密码错误次数未达到设置的值该设置项变更,将重新从0开始计算用户密码错误的次数。
账号/IP 已被锁定该设置项变更不影响已被锁定的账号/IP。
未登录天数超限锁定锁定未登录天数超限的账号(天)账号未登录天数未超限该设置项变更,在用户尝试登录时,会根据变更后的值计算账号的未登录天数是否超限。
账号未登录天数已超限,但用户未尝试登录该设置项变更,在用户尝试登录时,会根据变更后的值计算账号的未登录天数是否超限。
账号已被锁定该设置项变更不影响已被锁定的账号。

7 怎么统计系统中历史的锁定记录?

答复:可通过 运维设置 - 系统运维工具- 操作日志,查看 操作类型为“锁定用户”的记录。

若需要统计手动解锁的记录,查看操作类型为“解锁用户”的记录即可。

注意

密码错误次数超限被锁定的对象,自动解锁并不会记录操作日志!

8 密码错误次数超限锁定对象设置为IP,为什么锁定的IP是下面这种数据?

答复:该地址为IPv6地址,且出现ipv6地址通常是因为在服务器所在电脑上通过 http://localhost:port/smartbi等方式访问。建议通服务器实际IP或服务器域名地址访问系统。