背景
BMC的客户配置恢复操作步骤多,方式不统一,繁琐且容易遗漏,需要支持现网场景BMC更换后的配置一键恢复能力。补齐部分仅装备定制化可配置的能力,提供配置导入导出能力。
关联ISSUE
整体方案
新增配置导入导出项,补全原有部分定制能力
评审点
1、新增配置导入导出项支持导入/导出用户首次登陆策略
2、新增配置导入导出项支持导入/导出密码复杂度校验能力
详细描述
1、新增配置导入导出项支持导入/导出用户首次登陆策略
| 配置项名称 | 配置项类别 | 配置项 | 归属组件 | 取值类型 | 取值说明 | 默认值 | 导入导出类型 | 说明 |
|---|---|---|---|---|---|---|---|---|
| 用户首次登陆策略 | User | FirstLoginPolicy | account | string | PromptPasswordReset:提示修改密码 ForcePasswordReset:强制修改密码 |
ForcePasswordReset | ImportAndExport | 提示修改密码:用户使用初始密码首次登录时,仅提示进行修改密码,可跳过 强制修改密码:用户使用初始密码首次登录时,强制要求修改密码,并使用初始密码二次认证 |
配置项详情:
{
"ConfigData": {
"type": "object",
"properties": {
"User": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Id": {
"type": "number",
"AttributeType": "ImportAndExport"
},
"UserName": {
"type": "string",
"AttributeType": "ImportAndExport",
"maxLength": 16,
"minLength": 0
},
"FirstLoginPolicy": {
"type": "string",
"AttributeType": "ImportAndExport",
"enum": [
"PromptPasswordReset",
"ForcePasswordReset"
]
},
......(其它用户配置)
},
"required": [
"Id",
"UserName"
]
}
}
}
}
}
2、新增配置导入导出项支持导入/导出密码复杂度校验能力
密码复杂度校验能力在后台组件分别由两个属性控制,分别为 密码复杂度能力锁 和 密码复杂度使能,其中密码复杂度能力锁在锁定后不可再变更使能情况(锁定场景前提条件密码复杂度已使能)
装备定制密码复杂度使能时存在三种场景:
① 关闭
② 开启
③ 永久开启,不可逆
当设置①、②时,密码复杂度校验能力锁不会被设置,默认为false,代表密码复杂度使能后续可修改;
当设置③时,密码复杂度使能被设为true,且密码复杂度校验能力锁被设为true,后续再次设置密码复杂度使能会被拦截。
历史已有密码复杂度使能的配置导入导出项 EnableStrongPassword(bool),但仅能覆盖上述①、②场景,无法覆盖强使能的场景;遂计划新增配置导入导出项收编原有的EnableStrongPassword
| 配置项名称 | 配置项类别 | 配置项 | 归属组件 | 取值类型 | 取值说明 | 默认值 | 导入导出类型 | 说明 |
|---|---|---|---|---|---|---|---|---|
| 密码复杂度校验能力 | PasswdSetting | PasswordComplexityStatus | account | string | Disabled:密码复杂度使能关闭 Enabled:密码复杂度使能开启 ForceEnabled:密码复杂度使能强制开启,不可再关闭 |
Enabled | ImportAndExport | 同时导入PasswordComplexityStatus和EnableStrongPassword时,仅生效PasswordComplexityStatus的值 当前PasswordComplexityStatus已经为"ForceEnabled"时,不可再设置为"Disabled"、“Enabled” |
配置项详情:
{
"ConfigData": {
"type": "object",
"properties": {
"PasswdSetting": {
"type": "object",
"properties": {
"EnableStrongPassword": {
"type": "boolean",
"AttributeType": "ImportAndExport"
},
"PasswordComplexityStatus": {
"type": "string",
"AttributeType": "ImportAndExport",
"enum": [
"Disabled",
"Enabled",
"ForceEnabled"
]
},
......(其它配置)
}
}
}
}
}
评审结论
1、同意新增配置导入导出项 User.FirstLoginPolicy 用于配置账户的首次登陆策略;取值类型为字符串枚举,取值范围:[“PromptPasswordReset”、“ForcePasswordReset”],可以导入及导出。
2、同意新增配置导入导出项 PasswdSetting.PasswordComplexityStatus 拥有配置密码复杂度校验能力;取值类型为字符串枚举,取值范围:[“Disabled”、“Enabled”、“ForceEnabled”],可以导入及导出。
当同时导入 PasswordComplexityStatus 和 EnableStrongPassword 时,仅以 PasswordComplexityStatus 的取值生效。
若当前 PasswordComplexityStatus 已经为 “ForceEnabled”,不可再修改为 “Disabled”、“Enabled”
遗留问题
1、FirstLoginPolicy 建议做成字符串枚举,能直观体现值的含义
答复:调整为字符串枚举类
PromptPasswordReset:提示修改密码
ForcePasswordReset:强制修改密码
2、当前方案太复杂,自身存在限制且与其它属性也存在耦合
答复:调整为 PasswordComplexityStatus,收编原有的 EnableStrongPassword 能力,为保障新旧版本配置导入导出的兼容性,原 EnableStrongPassword 需要保留。若同时导入 PasswordComplexityStatus 和 EnableStrongPassword,仅以新属性 PasswordComplexityStatus 的取值生效。