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
整体方案:
- 登录失败锁定次数和时间
增加登录锁定时间和登录失败锁定次数的属性,通过对这两个属性的配置。来限制登录锁定时间和登录失败锁定次数范围。
影响:内部使用pam_faillock校验时,可以支持配置到255
- 历史密码
增加历史密码的最大属性,限制用户可以配置的最大历史密码次数。
影响:如果用户将历史密码配置到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
遗留问题
无

