【已评审】修改历史密码、登录密码失败锁定次数和锁定时间最大配置范围

ISSUE链接

【需求】支持历史密码、登录失败锁定次数、登录失败锁定时间可配置-account-GitCode

背景:

客户认为当前的历史密码、登录失败锁定次数合登录失败锁定时间存在一定的局限性。希望能对这三种属性进行更大范围的配置。

当前版本:
历史密码仅支持在0 - 5次间配置
登录失败锁定次数仅支持在0 - 6次间配置
登录失败锁定时间仅支持在1 - 30分钟间配置

客户希望支持如下配置:
历史密码支持在0 - 99次间配置
登录失败锁定次数配置区间为0 - 99次
登录失败锁定时间配置区间为1 - 99分钟

决策点:

一、希望新增资源协作接口属性,用来控制历史密码、登录失败锁定此时、登录失败锁定时间的最大值可动态配置。
具体数据配置如下:
1、最大登录失败锁定(失败次数):MaxAccountLockoutThreshold
2、最长锁定时长(分钟):MaxAccountLockoutDuration
3、最大禁用历史密码禁用:MaxHistoryPasswordCount
用于配置历史密码、登录失败锁定次数、登录失败锁定时间可执行范围。

二、rest接口/UI/Rest/AccessMgnt/AdvancedSecurity新增如下属性供前端获取展示:
1、MaxPreviousPasswordsDisallowedCount,对应资源数属性MaxHistoryPasswordCount
2、MaxAccountLockoutThreshold,对应资源树属性MaxAccountLockoutDuration
3、MaxAccountLockoutDuration,对应资源数属性MaxHistoryPasswordCount

整体方案:

  1. 登录失败锁定次数和时间
    增加登录锁定时间和登录失败锁定次数的属性,通过对这两个属性的配置。来限制登录锁定时间和登录失败锁定次数范围。

影响:内部使用pam_faillock校验时,可以支持配置到255

  1. 历史密码
    增加历史密码的最大属性,限制用户可以配置的最大历史密码次数。

影响:如果用户将历史密码配置到99次,当用户在修改密码时会与存入在数据库中的历史密码进行比较的时候。密码修改成功接口的响应时间可能会较长,约为3.5s。

详细描述:

资源1:支持登录失败锁定功能的最大值动态配置

资源path:bmc/kepler/AccountService/Authentication

资源interface:bmc.kepler.AccountService.Authentication

变化类型:新增资源协作接口属性

应用场景:客户定制组件能够配置用户的登录失败锁定时间和登录失败锁定次数,来满足客户特定诉求。

详细描述:

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 默认值 约束
MaxAccountLockoutDuration 新增属性 i 读:ReadOnly 写:SecurityMgmt 临时持久化 false 定制组件代码刷新 最大账户锁定时长 1800 取值范围:[1800, 86400]
MaxAccountLockoutThreshold 新增属性 i 读:ReadOnly 写:SecurityMgmt 临时持久化 false 定制组件代码刷新 最大账户锁定次数 6 取值范围 [6, 255]

资源2:支持历史密码校验的最大值动态配置

资源path:bmc/kepler/AccountService/AccountService

资源interface:bmc.kepler.AccountService

变化类型:新增资源协作接口属性

应用场景:客户定制组件能够配置用户的登录失败锁定时间和登录失败锁定次数,来满足客户特定诉求。

详细描述:

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 默认值 约束
MaxHistoryPasswordCount 新增属性 y 读:ReadOnly 写:SecurityMgmt 临时持久化 false 组件代码更新 最大历史密码记录个数 5 取值范围:[5, 100]

资源3 支持前端获取最大用户登录失败锁定时间、最大登录失败锁定次数、最大历史密码校验次数

uri:/UI/Rest/AccessMgnt/AdvancedSecurity
变化类型:新增属性
操作类型:GET
应用场景:支持前端获取各项配置最大值
新增属性:
MaxPreviousPasswordsDisallowedCount、MaxAccountLockoutThreshold、MaxAccountLockoutDuration,

属性名称 取值类型 说明 默认值 操作权限 取值范围
MaxAccountLockoutDuration integer 新增属性 30 只读,读权限:ReadOnly 取值范围 [30, 1440]
MaxAccountLockoutThreshold integer 新增属性 6 只读,读权限:ReadOnly 取值范围 [6, 255]
MaxPreviousPasswordsDisallowedCount integer 新增属性 5 只读,读权限:ReadOnly 取值范围 [5, 100]

前端页面展示

修改前:


修改后:

评审结论

1、同意资源协作接口bmc.kepler.AccountService.Authentication新增如下属性:

  • MaxAccountLockoutDuration,表示最大账户锁定时长,单位:秒,签名为i,取值范围1800~86400,读权限:ReadOnly,写权限:SecurityMgmt,不发送变更通知事件
  • MaxAccountLockoutThreshold,表示最大账户锁定次数,签名为i,取值范围5~255,读权限:ReadOnly,写权限:SecurityMgmt,不发送变更通知事件

2、同意资源协作接口bmc.kepler.AccountService新增如下属性

  • MaxHistoryPasswordCount,表示最大历史密码记录个数,签名为y,取值范围5~100,读权限:ReadOnly,写权限:SecurityMgmt,不发送变更通知事件

3、同意webrest接口/UI/Rest/AccessMgnt/AdvancedSecurity GET操作新增如下属性:

  • MaxAccountLockoutDuration,表示最大账户锁定时长,单位:分钟,类型:integer,只读,取值范围30~1440
  • MaxAccountLockoutThreshold ,表示最大账户锁定次数,类型:integer,只读,取值范围6~255
  • MaxPreviousPasswordsDisallowedCount,表示最大历史密码记录个数,类型:integer,只读,取值范围5~100

遗留问题

参考最后一楼的回复,本楼层帖子清除

按照此模板重新刷新材料

ISSUE链接

评审背景

当前版本:

历史密码仅支持在0 - 5次间配置

登录失败锁定次数仅支持在0 - 5次间配置

登录失败锁定时间仅支持在1 - 30分钟间配置

客户希望支持如下配置:

历史密码支持在0 - 99次间配置

登录失败锁定次数配置区间为0 - 99次

登录失败锁定时间配置区间为1 - 99分钟

决策点

希望新增资源协作接口属性,用来控制历史密码、登录失败锁定此时、登录失败锁定时间的最大值可动态配置。

具体数据配置如下:

  1. 最大登录失败锁定(失败次数):MaxAccountLockoutThreshold
  2. 最长锁定时长(分钟):MaxAccountLockoutDuration
  3. 最大禁用历史密码禁用:MaxHistoryPasswordCount
    用于配置历史密码、登录失败锁定次数、登录失败锁定时间可执行范围。

整体方案

  1. 登录失败锁定次数和时间
    增加登录锁定时间和登录失败锁定次数的属性,通过对这两个属性的配置。来限制登录锁定时间和登录失败锁定次数范围。

影响:内部使用pam_faillock校验时,可以支持配置到255

  1. 历史密码
    增加历史密码的最大属性,限制用户可以配置的最大历史密码次数。

影响:当用户配置历史密码到99次的时候,与存入在数据库中的历史密码进行比较的时候。登录成功接口的响应时间可能会较长约为3.5s。

详细描述

资源1:支持登录失败锁定功能的最大值动态配置

资源path:bmc/kepler/AccountService/Authentication

资源interface:bmc.kepler.AccountService.Authentication

变化类型:新增资源协作接口属性

应用场景:

  • 客户定制组件能够配置用户的登录失败锁定时间和登录失败锁定次数,来满足客户特定诉求

详细描述:

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
MaxAccountLockoutDuration 新增属性 读:ReadOnly 写:SecurityMgmt 不持久化 false 定制组件代码刷新 账户锁定时长的最大范围 取值范围:[1800, 86400],单位是秒
MaxAccountLockoutThreshold 新增属性 读:ReadOnly 写:SecurityMgmt 不持久化 false 定制组件代码刷新 账户锁定次数的最大范围 取值范围 [6, 255]

资源2:支持历史密码校验的最大值动态配置

资源path:bmc/kepler/AccountService/AccountService

资源interface:bmc.kepler.AccountService

变化类型:新增资源协作接口属性

应用场景:

  • 客户定制组件能够配置用户的历史密码次数,来满足客户特定诉求

详细描述:

属性名称 变化类型 签名 访问权限 持久化 变化通知 属性值来源 说明 约束
MaxHistoryPasswordCount 新增属性 y 读:ReadOnly 写:SecurityMgmt 不持久化 false 定制组件代码刷新 历史密码次数最大值 取值范围 [5, 100]

资源设置超过取值范围的错误:

PropertyValueOutOfRange

评审结论

待补充