背景
部分产品存在管理板和节点板区分,用户仅需操作管理板,向各节点板下发配置,不需要直接关注各节点板。
需要扩展框内通信能力已达到管理板访问节点板的更多诉求。
关联ISSUE
整体方案
提供独立的框内通信账户,可设置权限、登录接口、导入/删除公钥,用于框内认证赋权行为。
当框内通信使能打开后,支持框内通信账户通过内部ip证书认证创建Rest、Redfish会话,支持通过框内通信账户公钥认证建立SSH、SFTP链接。
框内通信账户支持设置登录接口,范围局限于 Web、Redfish、SSH、SFTP
扩展框间通信内部鉴权校验策略,支持通过白名单机制进行ip拦截
扩展资源树方法证书用途参数枚举类型取值范围,支持处理框内身份证书
变更资源协作接口,增加框内通信使能状态属性字段,支持certificate组件获取框内通信证书认证使能状态
评审点
1、变更资源协作接口 bmc.kepler.AccountService.CertificateAuthentication,扩展框内通信鉴权校验策略
详细描述
- 场景1:扩展属性 InterChassisValidation 取值范围
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
| 变更 | InterChassisValidation | s | false | false | 机框内BMC间通信的鉴权请求校验策略取值范围: 变更前:[“LLDP”,“None”] 变更后:[“LLDP”,“None”,“Whitelist”] |
Read:ReadOnly Write:UserMgmt |
CSR | 不持久化 | 扩展枚举取值范围 |
新增扩展校验策略 Whitelist,代表通过特定的白名单进行校验,仅白名单内的请求可通过,否则被拦截
- 场景2:新增方法 ManageInterChassisWhitelist
| 变更类型 | 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|---|
| 新增 | ManageInterChassisWhitelist | sss | Operation:s,代表操作类型,取值范围:[“Get“,”Add”,”Remove”] Type:s,表示白名单类型,取值范围:[“IP”] Item:s,表示要操作的白名单对象,当Operation为”Add”、”Remove”时,不可为空字符串 |
as | List:白名单列表,代表完成对应操作后当前白名单类型的白名单全集 | 用于管理机框内BMC间通信的鉴权请求校验的白名单,当校验策略为”WhiteList ”时,基于本方法设置的白名单用于进行校验;当校验策略非”WhiteList”时,本方法依然可用,白名单不生效。单个类型的白名单最多支持10条。 | UserMgmt |
当校验策略非”WhiteList”时,本方法可用,白名单不生效
当新增白名单已重复时,不报错,仅返回当前白名单全集
当删除白名单不存在时,不报错,仅返回当前白名单全集
当新增白名单超过最大数量限制时,抛出错误 base.CreateLimitReachedForResource
2、变更 webrest 接口 /UI/Rest/AccessMgnt/AdvancedSecurity,支持前端限制框内通信账户的登陆接口
详细描述
- 场景1:变更webrest接口 /UI/Rest/AccessMgnt/AdvancedSecurity
URI:/UI/Rest/AccessMgnt/AdvancedSecurity
操作类型:GET
变化类型:新增返回字段
| 属性名称 | 属性类型 | 属性说明 | 约束 |
|---|---|---|---|
| “AllowedLoginInterfaces”: { | |||
| “InterChassis” | array(string) | 代表机框内BMC间账户可用的登陆接口集合,用于前端界面限制框内通信账户的可设置的登陆接口 | 仅当机框内BMC间通信使能打开时该属性可见 |
| … | |||
| } |
RspBody响应体示例:
{
....
"AllowedLoginInterfaces": {
....,
"InterChassis": ["Web", "Redfish"]
}
}
3、变更资源协作接口 bmc.kepler.CertificateService.Certificate
详细描述
- 场景1:扩展属性 CertificateUsageType 的枚举值范围
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
| 变更 | CertificateUsageType | u | false | false | 代表单本证书的使用类型: 变更前: ManagerCACertificate: 0 ManagerSSLCertificate: 1 ManagerAccountCertificate: 2 ManagerCMPCertificate: 3 ManagerFirmwareCertificate: 4 TrustedComponentCertificate: 5 变更后: ManagerCACertificate: 0 ManagerSSLCertificate: 1 ManagerAccountCertificate: 2 ManagerCMPCertificate: 3 ManagerFirmwareCertificate: 4 TrustedComponentCertificate: 5 InterChassisAuthCertificate: 6 |
read:ReadOnly | 基于持久化证书 | 掉电持久化 | 资源协作接口 bmc.kepler.CertificateService 中 GetCertPath、ImportCert、ImportCertWithKey、ImportCertificate、ExportCertKeyByFIFO、DeleteCert、GetCertChainInfo 等涉及证书导入、导出、查询的方法入参扩展 |
4、变更资源协作接口 bmc.kepler.CertificateService ,增加机框内BMC间通信证书认证使能状态字段名称
-
PATH:/bmc/kepler/CertificateService
-
Interface: bmc.kepler.CertificateService
-
变化类型:新增属性字段
-
新增属性字段:
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 持久化类型 |
|---|---|---|---|---|---|---|
| InterChassisCertificateAuthEnabled | b | False | False | 机框内BMC间通信证书认证使能 | Read: ReadOnly Write:UserMgmt |
掉电持久化 |
评审结论
1、同意扩展资源协作接口 bmc.kepler.AccountService.CertificateAuthentication 下的属性 “InterChassisValidation“ 枚举取值范围
新增”Whitelist”,代表对机框内设备间BMC通信的鉴权请求通过特定的白名单进行校验,仅白名单内的请求可通过,否则被拦截
同意在资源协作接口 bmc.kepler.AccountService.CertificateAuthentication 下新增方法 ManageInterChassisWhitelist,用于管理机框内设备间BMC通信的请求校验白名单
权限为 UserMgmt,请求签名为 sss,响应签名as,通过该方法最多可在单个白名单类型下添加10条白名单。
参数说明如下表:
请求参数:
| 参数属性名称 | 签名 | 取值说明 |
|---|---|---|
| Operation | s | 操作类型,取值范围:[“Get”、“Add”、“Remove”] |
| Type | s | 白名单类型,取值范围: [“IP”] |
| Item | s | 待操作的白名单,当操作类型为"Add"或"Remove"时不可为空字符串。 |
响应参数:
| 参数属性名称 | 签名 | 取值说明 |
|---|---|---|
| List | as | 白名单列表,代表完成对应操作后当前白名单类型的白名单全集 |
2、同意在 Rest 接口 /UI/Rest/AccessMgnt/AdvancedSecurity 中新增响应值 AllowedLoginInterfaces/InterChassis,代表机框内设备间BMC通信使用的账户可用的登陆接口,该属性仅在机框内BMC间通信使能打开时可见。
3、同意扩展 CertificateUsageType 枚举类的取值范围,用于呈现机框内 BMC 间通信证书的用途
4、同意在资源协作接口 bmc.kepler.CertificateService 下新增属性 InterChassisCertificateAuthEnabled,表示机框内BMC间通信证书认证使能状态
属性签名b,访问权限为 Read: ReadOnly | Write:UserMgmt,掉电持久化存储