密码策略资源协作接口评审
需求: [需求]: 支持密码复杂度规格要求-account-AtomGit
背景
现有账号服务提供通用密码策略,定制场景还需要补充密码字符、连续字符、禁用字符串及历史密码特征检查。为支持这些规则,同时保留非定制场景的原有行为,将定制校验放在 CTCC 组件中,账号操作继续复用 account 的实现。
整体方案概述
本次在 mdb_interface 中新增资源协作路径定义 /bmc/kepler/CTCC 和接口定义 bmc.kepler.CTCC.PasswordPolicy,由 CTCC 组件提供密码复杂度校验及历史密码管理能力。
定制场景下,新建账号和设置密码的请求先由北向调用 CTCC,完成密码规则校验后,携带原调用者上下文调用 account 执行实际操作,再通过 CTCC 将结果返回北向。
接口提供 New、ChangePwd、SetAuthenticationProtocol、Delete 四个方法,分别用于新建账号、修改密码、设置 SNMP 认证配置和删除账号。密码设置成功后由 CTCC 记录加密历史,账号删除成功后清理对应历史。account 继续负责原有权限检查、基础密码校验及账号数据保存,非定制场景沿用原有调用流程。
本次方案涉及新增接口、方法和路径定义,不新增属性、信号或错误消息。
评审点1:新增资源协作接口 bmc.kepler.CTCC.PasswordPolicy
接口描述:归属账号安全管理功能域,用于实现定制密码复杂度校验和历史密码管理。新建账号、修改密码及设置 SNMP 认证密码时,先由 CTCC 校验,校验通过后调用 account 完成操作并记录密码历史;删除账号成功后清理对应历史。
接口定义文件:mdb_interface/json/intf/mdb/bmc/kepler/CTCC/PasswordPolicy.json。
新增属性
无。
新增方法
以下请求签名不含调用者上下文。四个方法均配置 initiator: true,实际请求在业务参数前携带 a{ss} 类型的调用者上下文,并传递给 account。
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
| New | ysayiaii | AccountId:账号 ID,0 表示自动分配;UserName:用户名;Password:初始密码,字节数组;RoleId:角色编号;LoginInterface:允许登录的接口编号数组;FirstLoginPolicy:首次登录策略编号 | y | AccountId:实际创建的账号 ID | 校验初始密码后调用 account 创建账号,成功后记录密码历史 | UserMgmt |
| ChangePwd | yay | AccountId:目标账号 ID;Password:新密码,字节数组 | 无 | 无 | 校验新密码后调用 account 修改密码,成功后记录密码历史 | ConfigureSelf |
| SetAuthenticationProtocol | yyss | AccountId:目标账号 ID;AuthenticationProtocol:SNMP 认证算法编号;Password:认证密码,字符串;PrivacyPassword:SNMP 加密密码,字符串 | 无 | 无 | 校验认证密码后调用 account 设置认证配置,成功后记录密码历史;PrivacyPassword 透传给 account 处理 | ConfigureSelf |
| Delete | y | AccountId:目标账号 ID | 无 | 无 | 调用 account 删除账号,成功后清理该账号的密码历史 | UserMgmt |
角色、登录接口、首次登录策略和认证算法的编号沿用 account 定义。访问权限取自 CTCC 的 MDS 模型,account 继续执行原有权限检查。失败通过现有错误机制返回,不新增错误消息。
新增信号
无。
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/CTCC | 提供上述四个方法,实现密码校验及历史管理 | 不涉及 | 接口无持久化属性;业务使用 CTCC 本地初始化标记表和历史密码表,历史密码加密保存 | 定制的 Web、Redfish、CLI、SNMP 对应操作改为调用 CTCC;非定制场景沿用原有入口 |
评审点2:新增资源协作路径定义 /bmc/kepler/CTCC
路径描述:用于提供当前 BMC 的定制密码策略能力,不按系统、管理器或机框分别创建实例,目标账号通过 AccountId 指定。
本次新增该路径的 MDB 定义,并关联密码策略接口。该路径与框架的 CTCC 应用对象路径一致,保留原有应用接口。account 的 AccountService 和账号对象路径不变。
路径定义文件:mdb_interface/json/path/mdb/bmc/kepler/CTCC/CTCC.json。
实现接口
| 实现接口 | 实现接口描述 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| bmc.kepler.CTCC.PasswordPolicy | 实现 New、ChangePwd、SetAuthenticationProtocol、Delete 四个方法 | 不涉及 | 使用本地 PasswordPolicyInitialization 初始化标记表及 CTCCPasswordHistory 历史密码表,均为掉电持久化 | 由 CTCC 组件实现,MDB 定义、CTCC 模型及北向映射需同步更新 |