RBAC技术白皮书
Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着网络技术的高速发展,大型数据中心技术尤其是网络虚拟化技术的广泛应用对网络设备的管理提出了更高的要求。传统的基于用户优先级的权限控制技术已经无法适应日新月异的网络应用。为了应对新的技术挑战,引入了RBAC(Role-Based Access Control,基于角色的访问控制)权限管理模型——一种已经广泛应用于各种管理系统的权限管理模型。在RBAC中,操作权限与角色之间建立关联,再通过在角色与用户之间建立关联来完成对用户的授权,大大提高了权限控制的灵活性。
在传统的基于用户优先级的权限控制模型中,用户的权限和用户级别静态绑定,用户具有的权限完全由系统预定义确定。在RBAC模型中,系统管理员可以通过配置将特定功能的操作权限赋予自定义的用户角色,从而灵活地控制用户权限。另外,RBAC增加了对系统资源访问权限的控制,可以限定用户对VLAN、接口、VPN实例、安全域和地区标识的访问。
另外,由于权限与用户的分离,RBAC具有以下特点:
· 管理员不需要针对用户去逐一指定权限,只需要预先定义具有相应权限的角色,再将角色赋予用户即可。因此RBAC更能适应用户的变化,提高了用户权限分配的灵活性。
· 由于角色与用户的关系常常会发生变化,但是角色和权限的关系相对稳定,因此利用这种稳定的关联可减小用户授权管理的复杂性,降低管理成本。
Comware系统支持通过创建用户账户来对用户进行身份验证和授权。用户账户分为设备管理用户和网络接入用户两类。设备管理类用户,用于登录设备,对设备进行配置和监控;网络接入类用户,用于通过设备接入网络,访问网络资源。RBAC功能用来控制设备管理类用户对设备的操作权限。
是指用户对系统的一次操作。例如通过命令行或者SNMP协议对系统进行功能配置,通过基于Web的用户界面查看设备运行状态等。
根据操作性质的不同可分为读、写和执行三种属性。
· 读属性:表示仅对系统配置信息和运行状态信息进行查看;
· 写属性:表示对系统进行配置;
· 执行属性:表示可以执行特定的程序(如ping命令调用ping程序完成探测功能),并对系统运行状态不产生影响。
与一个功能相关的所有命令的集合,例如OSPF特性包含了所有OSPF的配置、显示及调试命令。
一个或者多个特性的集合。其主要目的是为了方便管理员对用户权限进行配置。
用户角色是一组权限规则和多种类型的资源控制策略的集合。权限规则定义了允许用户执行的动作和拒绝执行的动作;资源控制策略分别定义了允许用户可以操作的接口、VLAN、VPN实例、安全域和地区标识。
权限规则具体定义了用户角色的执行权限,一个用户角色可以拥有多条权限规则。权限规则可以分为以下几类:
· 基于命令特征字符串的权限规则:此类规则由命令关键字与通配符组成,用于控制与之匹配的命令是否有权限被执行。如果设置为允许执行(permit),并且用户被授权用户角色包含这个规则时,此用户有权限执行此命令。如果是设置为拒绝时(deny),用户没有权限执行此命令。
· 基于特性的权限规则:此规则可以控制特性包含的命令是否有权限被执行。特性中每条命令均具有动作属性,所以在定义基于特性的权限规则时,可以精细地控制所包含的读命令或者写命令能否被执行。
· 基于特性组的权限规则:此规则和基于特性的权限规则类似,区别是一个特性组中包含了一个或者多个特性。
· 基于Web菜单的权限规则:此规则可以控制指定的Web菜单是否允许被操作。Web菜单对应的用户界面中的各种控件具有动作属性,所以在定义此类规则时,可以精细地控制Web菜单中所包含的读控件或者写控件能否被操作。
· 基于XML元素的权限规则:此规则可以控制指定的XML元素的XPath是否允许被操作。与Web菜单相似,XML元素的XPath对应的用户界面中的各种控件具有动作属性。定义此类规则时,可以精细地控制读控件或者写控件能否被操作。
· 基于SNMP OID的权限规则:此规则可以控制指定的OID是否允许被SNMP访问。
一个用户角色中可以定义多条规则,各规则以创建时指定的编号为唯一标识,被授权该角色的用户的权限是这些规则中定义的操作的并集。若这些规则定义的权限内容有冲突,则规则编号大的有效。其中,OID规则遵循最长匹配,相同长度的匹配规则中编号大的有效。
资源控制策略规定了用户对系统资源的操作权限。在用户角色中可定义四种类型的资源控制策略:接口策略、VLAN策略、VPN策略、安全域策略和地区标识策略,它们分别定义了用户允许操作的接口、VLAN、VPN实例、安全域或者地区标识。
角色与用户的关联是通过为用户赋予角色建立的。将有效的用户角色成功授权给用户后,登录设备的用户才能以各角色所具有的权限来配置、管理或者监控设备。根据用户登录设备时采用的不同认证方式,可以将为用户授权角色分为AAA方式和非AAA方式。
· AAA方式:用户登录设备后所拥有的用户角色由AAA功能进行授权。
¡ 如果对用户采用本地授权方式,则授权的用户角色是在本地用户中设置的。
¡ 如果对用户采用远程服务器授权,则可以在远程服务器上灵活地配置授权方案,可以实现单个用户或者一组用户的角色关联。
· 非AAA方式:用户登录后所拥有的用户角色是用户线下配置的用户角色。
当系统获得用户的授权角色后,将根据角色名称读取系统配置并依据角色中的权限规则和资源控制策略为其生成两个表,分别是权限规则表和资源控制策略表。
· 权限规则表项的组成元素包括:规则编号、权限(允许/禁止)、规则类型(命令/Web/XML/SNMP)、动作属性(读/写/执行)、规则内容。
· 资源控制策略表项的组成元素包括:资源类型(VLAN/接口/VPN/安全域/地区标识)、权限(允许/禁止)、资源标识(VLAN编号/接口名称/VPN名称/安全域名称/地区标识)。
每个登录到系统中的用户都具有上述两个权限控制表,用户只能执行权限控制表内规定的操作。
当用户通过命令行或者其他配置工具对系统进行操作时,系统将查找该用户的权限控制表来判断用户的当前操作是否被允许。资源控制策略表项需要与权限规则表项相配合才能生效。下面以执行某条配置命令为例,详细描述具体处理过程:
(1) 用户输入配置命令,例如:vlan 1。
(2) 系统读取到用户的输入后,查找该用户对应的权限规则表:
a. 按照规则编号从大到小查找。
b. 判断规则类型,如果不是命令规则,则跳过该表项;否则,继续进行下一步处理。
c. 将字符串“vlan 1”与规则中的正则表达式内容进行匹配,如果不匹配,继续查找下一条规则;否则,得到该表项对应的权限(允许/禁止)。
(3) 如果步骤(2)中的匹配结果为允许执行,则查找资源控制策略表。因为vlan 1命令操作的对象是VLAN资源,所以查找该用户VLAN类型的资源控制表项,如果VLAN 1在允许的列表中,则允许用户执行vlan 1;否则,返回禁止执行,并提示用户“Permission denied.”。
(4) 如果步骤(2)中的匹配结果为禁止执行,则提示用户“Permission denied.”。
Comware提供了丰富的系统预定义角色,用户可以直接使用这些预定义角色来对设备进行权限控制。系统预定义的用户角色名和对应的权限如表3-1所示。这些用户角色缺省均具有操作所有系统资源的权限,但具有不同的系统功能操作权限。
用户角色名 |
权限 |
network-admin |
可操作系统所有功能和资源(除安全日志文件管理相关命令之外) |
network-operator |
· 可执行系统所有功能和资源的相关显示命令(除display history-command all、display security-logfile summary等命令,具体请通过display role命令查看) · 可执行切换MDC(Multitenant Device Context,多租户设备环境)视图的命令 · 如果用户采用本地认证方式登录系统并被授予该角色,则可以修改自己的密码 · 可执行进入XML视图的命令 · 可允许用户操作所有读类型的Web菜单选项 · 可允许用户操作所有读类型的XML元素 · 可允许用户操作所有读类型的OID |
mdc-admin |
可操作该MDC所有功能和资源(除安全日志文件管理相关命令之外),但不包括操作仅缺省MDC支持,非缺省MDC不支持的功能的权限 |
mdc-operator |
· 可执行该MDC所有功能和资源的相关显示命令(除display history-command all、display security-logfile summary等命令,具体请通过display role命令查看),但不包括仅缺省MDC支持,非缺省MDC不支持的功能的相关display命令的执行权限 · 如果用户采用本地认证方式登录系统并被授予该角色,则可以修改自己的密码 · 可执行进入XML视图的命令 · 可允许用户操作所有读类型的Web菜单选项 · 可允许用户操作所有读类型的XML元素 · 可允许用户操作所有读类型的OID |
level-n (n = 0~15) |
· level-0:可执行命令ping、tracert、ssh2、telnet和super,且管理员可以为其配置权限 · level-1:具有level-0用户角色的权限,并且可执行系统所有功能和资源的相关显示命令(除display history-command all之外),以及管理员可以为其配置权限 · level-2~level-8和level-10~level-14:无缺省权限,需要管理员为其配置权限 · level-9:可操作系统中绝大多数的功能和所有的资源,且管理员可以为其配置权限,但不能操作display history-command all命令、RBAC的命令(Debug命令除外)、MDC、文件管理、设备管理以及本地用户特性。对于本地用户,若用户登录系统并被授予该角色,可以修改自己的密码 · level-15:具有与network-admin角色相同的权限(不支持MDC、Context的设备) · level-15:在缺省MDC中,具有与network-admin角色相同的权限;在非缺省MDC中,具有与mdc-admin角色相同的权限(支持MDC的设备) · level-15:在缺省Context中,具有与network-admin角色相同的权限;在非缺省Context中,具有与context-admin角色相同的权限(支持Context的设备) |
security-audit |
安全日志管理员,仅具有安全日志文件的读、写、执行权限,具体如下: · 可执行安全日志文件管理相关的命令 · 可执行安全日志文件操作相关的命令,例如more显示安全日志文件内容;dir、mkdir操作安全日志文件目录等 以上权限,仅安全日志管理员角色独有,其它任何角色均不具备 该角色不能被授权给从当前用户线登录系统的用户 |
guest-manager |
来宾用户管理员,只能查看和配置与来宾有关的Web页面,没有控制命令行的权限 |
context-admin |
可操作该Context所有功能和资源(除安全日志文件管理相关命令之外) |
context-operator |
· 可执行该Context所有功能和资源的相关display命令(除display history-command all、display security-logfile summary等命令,具体请通过display role命令查看) · 如果用户采用本地认证方式登录系统并被授予该角色,则可以修改自己的密码 · 可执行进入XML视图的命令 · 可允许用户操作所有读类型的Web菜单选项 · 可允许用户操作所有读类型的XML元素 · 可允许用户操作所有读类型的OID |
system-admin |
系统管理员,具有部分Web页面菜单的读、写、执行权限,具体如下: · 对概览菜单具有读、写、执行权限 · 对监控菜单下的系统日志菜单具有读、写、执行权限 · 对系统菜单具体权限如下: ¡ 对管理员和角色菜单仅有读权限 ¡ 对其它子菜单菜单具有读、写、执行权限 系统管理员角色目前仅实现Web页面功能,命令行只有ping和tracert的权限,具体权限请通过display role命令查看 该角色不能被授权给从当前用户线登录系统的用户 |
security-admin |
安全管理员,具有大部分Web页面菜单的读、写、执行权限,具体如下: · 对策略、对象和网络菜单具有读、写、执行权限 · 对监控菜单具体权限如下: ¡ 对系统日志、操作日志子菜单无读、写、执行权限 ¡ 对于其他子菜单拥有读、写、执行权限 安全管理员角色目前仅实现Web页面功能,命令行只有执行ping和tracert命令的权限,具体权限请通过display role命令查看 该角色不能被授权给当前用户线登录系统的用户 |
audit-admin |
审计管理员,仅具有对监控菜单下的操作日志子菜单具有读、写、执行权限 审计管理员角色目前仅实现Web页面功能,命令行只有执行ping和tracert命令的权限,具体权限请通过display role命令查看 该角色不能授权给当前用户线登录系统的用户 |
当需要限制用户对符合某些特征的命令的权限时,可以配置基于命令特征的规则。规则由允许/禁止(permit/deny)关键字及命令匹配字符串(command-string)定义是否允许执行一条命令或者与指定命令关键字相匹配的一组命令。
当需要限制用户对某个功能的整体操作权限时,可以配置基于特性的规则。规则由允许/禁止(permit/deny)关键字、特性名称(feature-name)以及该特性中命令的类型(读/写/执行)定义是否允许执行一个特性中包含的指定类型的命令。当不指定特性名称时,将理解为指定所有特性。
当需要限制用户对某些功能的整体操作权限时,可以配置基于特性组的规则。规则由允许/禁止(permit/deny)关键字、特性组名称(feature-group-name)以及该特性组中命令的类型(读/写/执行)定义是否允许执行一个特性组中的特性包含的指定类型的命令。
当需要限制用户对Web界面上某菜单项的权限时,可以配置基于Web菜单的规则。规则由允许/禁止(permit/deny)关键字,Web菜单选项的ID路径以及该菜单中控件的操作类型(读/写/执行)定义是否允许操作一个Web菜单中包含的指定类型的控件。如果不指定Web菜单项,则对所有Web菜单项生效。
当需要限制用户对XML路径的权限时,可以配置基于XML路径的规则。规则由允许/禁止(permit/deny)关键字,XML路径描述符以及控件的操作类型(读/写/执行)定义是否允许操作一个XML路径中包含的指定类型的控件。如果不指定XML路径,则对所有XML路径生效。
当需要限制用户通过SNMP对OID的权限时,可以配置基于OID的规则。规则由允许/禁止(permit/deny)关键字、OID(oid-string)以及对该OID的操作类型(读/写/执行)定义是否允许执行一个或所有指定类型的OID。
通过配置基于文件系统特性的规则,可以控制用户在命令行界面对文件系统的访问权限。例如:定义规则rule rule-num permit read feature filesystem,可以允许用户在命令行界面仅拥有读文件系统的操作权限。
需要关注的是:
· 访问文件系统的命令,受基于文件系统特性规则以及具体命令规则的双重控制。
· 对于FTP用户,规则中对文件系统读、写属性的控制将影响FTP用户的上传和下载权限。
· 对于需要将输出信息重定向到文件中保存的命令,只有在用户角色被授权了文件系统写权限后才允许执行。
对于通过远程AAA认证登录设备的用户,由AAA服务器的配置决定为其授权的用户角色。如果用户没有被授权任何用户角色,将无法成功登录设备。为此,系统提供了一个缺省用户角色授权功能。使能该功能后,用户在AAA服务器没有为其授权角色的情况下,将具有一个缺省的用户角色。该缺省用户角色可以通过配置来指定。
RADIUS服务器上的授权角色配置与服务器的具体情况有关,请参考服务器的配置指导进行;HWTACACS服务器上的授权角色配置必须满足格式:roles="name1 name2 namen",其中name1、name2、namen为要授权下发给用户的用户角色,可为多个,并使用空格分隔。
对于通过本地AAA认证登录设备的用户,由本地用户配置决定为其授权的用户角色。由于本地用户缺省拥有一个用户角色,如果要赋予本地用户新的用户角色,请确认是否需要保留这个缺省的用户角色,若不需要,请删除。但需要注意的是,一个本地用户至少必须拥有一个用户角色。
对于不使用AAA认证登录设备的非SSH用户,由用户线的配置决定为其授权的用户角色。通过publickey或password-publickey方式认证登录的SSH用户,由同名的设备管理类本地用户配置决定为其授权的用户角色。
Comware系统提供了super命令用于切换当前登录用户的角色,从而满足用户临时提升/降低自身权限的需求。
切换用户角色是指在不退出当前登录、不断开当前连接的前提下修改用户的用户角色,改变用户所拥有的命令行权限。切换后的用户角色只对当前登录生效,用户重新登录后,又会恢复到原有角色。
· 为了防止对设备的误操作,通常情况下建议管理员使用较低权限的用户角色登录设备、查看设备运行参数,当需要对设备进行维护时,再临时切换到较高权限的用户角色。
· 当管理员需要暂时离开设备或者将设备暂时交给其它人代为管理时,为了安全起见,可以临时切换到较低权限的用户角色,来限制其他人员的操作。
图4-1 RBAC典型应用组网图
某企业内部为隔离部门间流量将不同VLAN划分给不同的部门使用,并允许各部门网络管理员在Core设备上部署QoS流量控制策略。另外,为了防止部门网络管理员操作Core设备的其它的配置,可以采用RBAC对各部门网络管理的权限进行控制。
具体的权限管理需求如下:
· 部门网络管理员角色为depart-admin,该角色具有QoS流量控制策略相关功能的配置权限。
· 部门A资源控制角色为departA-resource,该角色具有操作VLAN 100~VLAN 199的操作权限;
· 部门B资源控制角色为departB-resource,该角色具有操作VLAN 200~VLAN 299的操作权限。
在AAA服务器上为部门A管理员授权角色depart-admin和departA-resource,为部门B管理员授权角色depart-admin和departB-resouce角色。这样,即可通过RBAC实现权限的精细控制。