02-RBAC配置
本章节下载: 02-RBAC配置 (401.05 KB)
RBAC(Role Based Access Control,基于角色的访问控制)通过建立“权限<->角色”的关联实现将权限赋予给角色,并通过建立“角色<->用户”的关联实现为用户指定角色,从而使用户获得相应角色所具有的权限。RBAC的基本思想就是给用户指定角色,这些角色中定义了允许用户操作哪些系统功能以及资源对象。RBAC采用权限与用户分离的思想,提高用户权限分配的灵活性,减小用户授权管理的复杂度,降低管理开销。
为一个用户角色赋予权限的具体实现包括以下两个方面:
· 定义用户角色规则:实现对系统功能的操作权限的控制。例如,定义用户角色规则允许用户配置A功能,或禁止用户配置B功能。
· 定义资源控制策略:实现对系统资源的操作权限的控制。例如,定义资源控制策略允许用户操作VLAN 10。
资源控制策略需要与用户角色规则相配合才能生效。在用户执行命令的过程中,系统对该命令涉及的系统资源使用权限进行动态检测,因此只有用户同时拥有执行该命令的权限和使用该资源的权限时,才能执行该命令。例如,若管理员为某用户角色定义了一条规则允许用户执行创建VLAN的命令vlan,且同时定义了一条VLAN策略允许用户操作VLAN 10,则当用户被授权此用户角色并试图创建VLAN 10时,操作会被允许,但试图创建其它VLAN时,操作会被禁止。若管理员并没有为该用户角色定义规则允许用户执行创建VLAN命令,则用户即便拥有该VLAN资源的操作权限,也无法执行相关的命令。
用户角色规则定义了允许/禁止用户操作某些功能的权限。一个用户角色中可以包含多条用户角色规则,每条规则定义了是允许还是禁止用户对某命令、特性、特性组、Web菜单、XML元素或者OID进行操作。
· 基于命令的规则:用来控制一条命令或者与指定命令关键字相匹配的一类命令是否允许被执行。
· 基于特性的规则:用来控制特性包含的命令是否允许被执行。
· 基于特性组的规则:用来同时对多个特性包含的命令进行控制。
· 基于Web菜单的规则:用来控制指定的Web菜单选项是否允许被操作。
· 基于XML元素的规则:用来控制指定的XML元素是否允许被执行。
· 基于OID的规则:用来控制指定的OID是否允许被SNMP访问。
RBAC对命令、特性、特性组、Web菜单、XML元素或者OID进行的操作,又包括三种类型:
· 读类型:用于显示系统配置信息和维护信息。如显示命令display、显示文件信息的命令dir为读类型的命令。
· 写类型:用于对系统进行配置。如开启信息中心功能的命令info-center enable、配置调试信息开关的命令debugging为写类型的命令。
· 执行类型:用于执行特定的功能。如ping命令、与FTP服务器建立连接的命令ftp为执行类型的命令。
一个用户角色中可以定义多条规则,各规则以创建时指定的编号为唯一标识,被授权该角色的用户可以执行的命令为这些规则中定义的可执行命令的并集。若这些规则定义的权限内容有冲突,则规则编号大的有效。例如,规则1允许执行命令A,规则2允许执行命令B,规则3禁止执行命令A,则最终规则2和规则3生效,即禁止执行命令A,允许执行命令B。
资源控制策略规定了用户对系统资源的操作权限。在用户角色中可定义如下类型的资源控制策略:
· 接口策略:定义用户允许操作的接口,包括创建并进入接口策略视图、删除接口。
· VLAN策略:定义用户允许操作的VLAN,包括创建并进入VLAN策略视图、删除VLAN。
· VPN策略:定义用户允许操作的VPN实例,包括创建并进入VPN策略视图、删除和应用VPN实例。
· 安全域策略:定义用户允许操作的安全域,包括创建并进入安全域策略视图、删除和应用安全域。
在display命令中指定接口/VLAN/VPN实例/安全域参数并不属于应用接口/VLAN/VPN实例/安全域。
系统预定义了多种用户角色,用户角色名和对应的权限如表1-1所示。这些用户角色缺省均具有操作所有系统资源的权限,但具有不同的系统功能操作权限。如果系统预定义的用户角色无法满足权限管理需求,管理员还可以自定义用户角色来对用户权限做进一步控制。
在所有系统预定义的用户角色当中,仅network-admin、context-admin或者level-15角色的用户具有执行创建/修改/删除本地用户和本地用户组的权限。其它角色的用户,即使被授权对本地用户和本地用户组的操作权限,也仅仅具有修改自身密码的权限,没有除此之外的对本地用户和本地用户组的任何操作权限。
用户以任意角色登录设备,在某视图下输入<?>会显示该视图下系统定义的缺省别名帮助信息,但用户对帮助信息中的命令行别名未必具有实际操作权限,命令行别名的实际操作权限以原命令行的操作权限为准。有关命令行别名的详细介绍请参见“基础配置指导”中的“CLI”。
用户以任意角色登录设备,均具有执行system-view、quit和exit命令的权限。
缺省Context中系统预定义了表1-1中的所有用户角色,而非缺省Context中没有network-admin和network-operator两种用户角色。有关Context相关的介绍请参见“虚拟化技术配置指导”中的“Context”。
系统预定义的用户角色中,仅level-0~level-14可以通过自定义规则和资源控制策略调整自身的权限,但这种修改对于display history-command all命令不生效,即不能通过添加对应的规则来更改它的缺省执行权限。
用户角色名 |
权限 |
network-admin |
可操作系统所有功能和资源(除安全日志文件管理相关命令display security-logfile summary、info-center security-logfile directory、security-logfile save之外) |
network-operator |
· 可执行系统所有功能和资源的相关display命令(除display history-command all、display security-logfile summary等命令,具体请通过display role命令查看) · 如果用户采用本地认证方式登录系统并被授予该角色,则可以修改自己的密码 · 可执行进入XML视图的命令 · 可允许用户操作所有读类型的Web菜单选项 · 可允许用户操作所有读类型的XML元素 · 可允许用户操作所有读类型的OID |
level-n (n = 0~15) |
· level-0:可执行命令ping、tracert、ssh2、telnet和super,且管理员可以为其配置权限 · level-1:具有level-0用户角色的权限,并且可执行系统所有功能和资源的相关display命令(除display history-command all之外),以及管理员可以为其配置权限 · level-2~level-8和level-10~level-14:无缺省权限,需要管理员为其配置权限 · level-9:可操作系统中绝大多数的功能和所有的资源,且管理员可以为其配置权限,但不能操作display history-command all命令、RBAC的命令(Debug命令除外)、文件管理、设备管理以及本地用户特性。对于本地用户,若用户登录系统并被授予该角色,可以修改自己的密码 · level-15:在缺省Context中,具有与network-admin角色相同的权限;在非缺省Context中,具有与context-admin角色相同的权限 |
security-audit |
安全日志管理员,仅具有安全日志文件的读、写、执行权限,具体如下: · 可执行安全日志文件管理相关的命令(display security-logfile summary、info-center security-logfile directory、security-logfile save)。安全日志文件管理相关命令的介绍,请参见“网络管理与监控”中的“信息中心” · 可执行安全日志文件操作相关的命令,例如more显示安全日志文件内容;dir、mkdir操作安全日志文件目录等,具体命令的介绍请参见“基础配置命令参考”中的“文件系统管理” 以上权限,仅安全日志管理员角色独有,其它任何角色均不具备 该角色不能被授权给从当前用户线登录系统的用户 |
guest-manager |
来宾用户管理员,只能查看和配置与来宾有关的web页面,没有控制命令行的权限 |
context-admin |
可操作该Context所有功能和资源(除安全日志文件管理相关命令display security-logfile summary、info-center security-logfile directory、security-logfile save之外) |
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命令查看 该角色不能授权给当前用户线登录系统的用户 |
通过为用户授权角色实现角色与用户的关联。将有效的用户角色成功授权给用户后,登录设备的用户才能以各角色所具有的权限来配置、管理或者监控设备。根据用户登录设备时采用的不同认证方式,可以将为用户授权角色分为AAA(Authentication、Authorization、Accounting,认证、授权、计费)方式和非AAA方式。
· AAA方式:用户登录时使用的认证方式为scheme,用户登录设备后所拥有的用户角色由AAA功能进行授权。
¡ 若用户通过了本地授权,则由设备为其授权用户角色,授权的用户角色是在本地用户中设置的。
¡ 若用户通过了远程授权,则由远程AAA服务器为其授权用户角色,授权的用户角色是在远程AAA服务器(RADIUS或HWTACACS服务器)上设置的。
· 非AAA方式:用户登录时使用的认证方式为none或者password,用户登录后所拥有的用户角色是用户线下配置的用户角色。SSH用户通过publickey或password-publickey认证登录服务器,登录后将被授予同名的设备管理类本地用户视图下配置的授权用户角色。
以上两种方式均支持对一个用户同时授权多个用户角色。拥有多个角色的用户可获得这些角色中被允许执行的功能以及被允许操作的资源的集合。例如,某用户拥有角色A,它禁止用户执行qos apply policy命令,且仅允许操作接口2。同时,该用户拥有角色B,它允许用户执行qos apply policy命令,且允许用户操作所有接口。则,这种情况下该用户将能够在所有接口下执行qos apply policy命令,以及可以操作所有的接口资源。
AAA相关内容的介绍请参见“安全配置指导”中的“AAA”。用户线相关内容的介绍请参见“基础配置指导”中的“登录设备”。
RBAC配置任务如下:
(1) 创建用户角色
(2) 配置用户角色规则
(3) (可选)配置特性组
(4) 配置资源控制策略
(5) 为用户授权角色
(6) 配置用户角色切换
c. 配置用户角色切换的密码
(7) (可选)配置用户角色切换认证时使用用户登录的用户名认证
a. 切换用户角色
如果系统预定义角色无法满足用户的权限管理需求,可以自定义用户角色来对用户权限做更精细和灵活的控制。除系统预定义的用户角色外,系统中最多允许同时创建64个用户角色。
(1) 进入系统视图。
system-view
(2) 创建用户角色,并进入用户角色视图。
role name role-name
缺省情况下,系统预定义的用户角色为network-admin、network-operator、context-admin、context-operator、level-n(n为0~15的整数)、security-audit、guest-manager、system-admin、security-admin、audit-admin。其中,仅用户角色level-0~level-14可以自定义规则、资源控制策略以及配置描述信息。
(3) (可选)配置用户角色描述信息。
description text
缺省情况下,未定义用户角色描述信息。
一个用户角色中可以包含多条用户角色规则,每条规则定义了是允许或禁止用户对某命令、特性、特性组、Web菜单、XML元素或者OID进行操作。
· 基于非OID的规则匹配
¡ 一个用户角色中可以定义多条规则,各规则以创建时指定的编号为唯一标识,被授权该角色的用户可以执行的命令为这些规则中定义的可执行命令的并集。若这些规则定义的权限内容有冲突,则规则编号大的有效。例如,角色中存在“rule 1 permit command ping”,“rule 2 permit command tracert”和“rule 3 deny command ping”,其中rule 1和rule 3冲突,规则编号大的rule 3生效,匹配的结果为用户禁止执行ping命令,允许执行tracert命令。
¡ 同时存在系统预定义规则和自定义规则的用户角色时,若预定义规则定义的权限内容与自定义规则定义的权限内容有冲突,则以自定义规则为准。
· 基于OID的规则匹配
¡ 与用户访问的OID形成最长匹配的规则生效。例如用户访问的OID为1.3.6.1.6.3.1.1.6.1,角色中存在“rule 1 permit read write oid 1.3.6”,“rule 2 deny read write oid 1.3.6.1.6.3”和“rule 3 permit read write oid 1.3.6.1.6”,其中rule 2与用户访问的OID形成最长匹配,则认为rule 2与OID匹配,匹配的结果为用户的此访问请求被拒绝。
¡ 对于定义的OID长度相同的规则,规则编号大的生效。例如用户访问的OID为1.3.6.1.6.3.1.1.6.1,角色中存在“rule 1 permit read write oid 1.3.6”,“rule 2 deny read write oid 1.3.6.1.6.3”和“rule 3 permit read write oid 1.3.6.1.6.3”,其中rule 2和rule 3与访问的OID形成最长匹配,则rule 3生效,匹配的结果为用户的访问请求被允许。
· 仅系统预定义的用户角色network-admin、network-operator、context-admin、context-operator、level-15具有Context特性的相应操作权限,具体请参见“表1-1系统预定义的用户角色名和对应的权限”。其它用户角色视图下,对于Context特性或Context相关命令的配置都无效。
· 只有具有network-admin、context-admin或者level-15用户角色的用户登录设备后才具有如下命令的操作权限,其它系统预定义角色和用户自定义角色不能执行相应的命令。
¡ display history-command all命令。
¡ 以display role、display license、reboot、startup saved-configuration开头的所有命令。
¡ 系统视图下以role、undo role、super、undo super、license、password-recovery、undo password-recovery开头的所有命令。
¡ 系统视图下创建SNMP团体、用户或组的命令:snmp-agent community、snmp-agent usm-user和snmp-agent group。
¡ 用户线视图下以user-role、undo user-role、authentication-mode、undo authentication-mode、set authentication password、undo set authentication password开头的所有命令。
¡ Schedule视图下以user-role、undo user-role开头的所有命令。
¡ CLI监控策略视图下以user-role、undo user-role开头的所有命令。
¡ Event MIB特性中所有类型的命令。
· 每个用户角色中最多可以配置256条规则,系统中的用户角色规则总数不能超过1024。
· 修改后的规则对于当前已经在线的用户不生效,对于之后使用该角色登录设备的用户生效。
(1) 进入系统视图。
system-view
(2) 进入用户角色视图。
role name role-name
¡ 配置基于命令的规则。
rule number { deny | permit } command command-string
¡ 配置基于特性的规则。
rule number { deny | permit } { execute | read | write } * feature [ feature-name ]
¡ 配置基于特性组的规则。
rule number { deny | permit } { execute | read | write } * feature-group feature-group-name
只有特性组创建后,基于特性组的规则才能生效。
¡ 配置基于Web菜单的规则。
rule number { deny | permit } { execute | read | write } * web-menu [ web-string ]
¡ 配置基于XML元素的规则。
rule number { deny | permit } { execute | read | write } * xml-element [ xml-string ]
¡ 配置基于OID的规则。
rule number { deny | permit } { execute | read | write } * oid oid-string
特性组是一个或者多个特性的集合。配置特性组便于管理员为有相同权限需求的多个特性定义统一的用户角色规则。除系统预定义的特性组之外,最多允许创建64个特性组,且各特性组之间包含的特性允许重叠。
(1) 进入系统视图。
system-view
(2) 创建特性组,并进入特性组视图。
role feature-group name feature-group-name
缺省情况下,存在两个系统预定义特性组,名称为L2和L3,且不能被修改和删除。
¡ L2:包含所有二层协议相关功能的命令。
¡ L3:包含所有三层协议相关功能的命令。
(3) 向特性组中添加一个特性。
feature feature-name
缺省情况下,自定义特性组中不包含任何特性。
资源控制策略分为接口策略、VLAN策略、VPN策略、安全域策略。所有用户角色均具有缺省的资源控制策略,允许用户具有操作任何系统资源的权限。若要限制或区分用户对这些资源的使用权限,则应该配置资源控制策略并在指定类型的策略中配置允许操作的资源列表。
修改后的资源控制策略对于当前已经在线的用户不生效,对于之后使用该角色登录设备的用户生效。
(1) 进入系统视图。
system-view
(2) 进入用户角色视图。
role name role-name
(3) 进入接口策略视图。
interface policy deny
缺省情况下,用户角色具有操作任何接口的权限。
进入接口策略视图后,如果不配置允许操作的接口列表,则用户将没有操作任何接口的权限;如果需要限制或区分用户对接口资源的使用权限,则还应该通过permit interface命令配置允许用户操作的接口列表。
(4) (可选)配置允许操作的接口列表。
permit interface interface-list
缺省情况下,未定义允许操作的接口列表,用户角色没有操作任何接口的权限。
可以多次执行此命令向接口列表中添加允许操作的接口。
(1) 进入系统视图。
system-view
(2) 进入用户角色视图。
role name role-name
(3) 进入VLAN策略视图。
vlan policy deny
缺省情况下,用户具有操作任何VLAN的权限。
进入VLAN策略视图后,如果不配置允许操作的VLAN列表,则用户将没有操作任何VLAN的权限;如果需要限制或区分用户对VLAN资源的使用权限,则还应该通过permit vlan命令配置允许用户操作的VLAN列表。
(4) (可选)配置允许操作的VLAN列表。
permit vlan vlan-id-list
缺省情况下,未定义允许操作的VLAN列表,用户没有操作任何VLAN的权限。
可以多次执行此命令向VLAN列表中添加允许操作的VLAN。
(1) 进入系统视图。
system-view
(2) 进入用户角色视图。
role name role-name
(3) 进入VPN策略视图。
vpn-instance policy deny
缺省情况下,用户具有操作任何VPN实例的权限。
进入VPN策略视图后,如果不配置允许操作的VPN实例列表,则用户将没有操作任何VPN实例的权限;如果需要限制或区分用户对VPN资源的使用权限,则还应该通过permit vpn-instance命令配置允许用户操作的VPN实例列表。
(4) (可选)配置允许操作的VPN实例列表。
permit vpn-instance vpn-instance-name&<1-10>
缺省情况下,未定义允许操作的VPN实例列表,用户没有操作任何VPN实例的权限。
可以多次执行此命令向VPN实例列表中添加允许操作的VPN实例。
(1) 进入系统视图。
system-view
(2) 进入用户角色视图。
role name role-name
(3) 进入安全域策略视图。
security-zone policy deny
缺省情况下,用户具有操作任何安全域的权限。
进入安全域策略视图后,如果不配置允许操作的安全域列表,则用户将没有操作任何安全域的权限;如果需要限制或区分用户对安全域资源的使用权限,则还应该通过permit security-zone命令配置允许用户操作的安全域列表。
(4) (可选)配置允许操作的安全域列表。
permit security-zone security-zone-name&<1-10>
缺省情况下,未定义允许操作的安全域列表,用户没有操作任何安全域的权限。
可以多次执行此命令向安全域列表中添加允许操作的安全域。
为保证对用户授权角色成功,设备上必须存在对应的被授权的用户角色。若要授权的用户角色有多个,则只要被授权的用户角色中的一个或多个在设备上存在,相应的用户角色即可授权成功;若设备上不存在任何一个被授权的用户角色,则用户角色授权将会失败。
对于通过AAA认证登录设备的用户,由服务器(远程认证服务器或本地认证服务器)为其授权用户角色。如果用户没有被授权任何用户角色,将无法成功登录设备,需要使能缺省用户角色授权功能。为此,设备提供了一个缺省用户角色授权功能。使能该功能后,用户在没有被服务器授权任何角色的情况下,将具有一个缺省的用户角色,该缺省用户角色可以通过参数配置为系统中已存在的任意用户角色。
(1) 进入系统视图。
system-view
(2) 使能缺省用户角色授权功能。
role default-role enable [ role-name ]
缺省情况下,缺省用户角色授权功能处于关闭状态。
若未通过authorization-attribute命令配置本地用户或用户组的授权属性,则必须使能缺省用户角色授权功能。关于命令authorization-attribute的详细介绍请参见“安全配置命令参考”的“AAA”。
对于通过AAA远程认证登录设备的用户,由AAA服务器的配置决定为其授权的用户角色。有关AAA以及远程AAA认证相关配置的详细介绍请参见“安全配置指导”中的“AAA”。
RADIUS服务器上的授权角色配置与服务器的具体情况有关,请参考服务器的配置指导进行;HWTACACS服务器上的授权角色配置必须满足格式:roles="name1 name2 namen",其中name1、name2、namen为要授权下发给用户的用户角色,可为多个,并使用空格分隔。
需要注意的是,若AAA服务器同时为用户授权了包括安全日志管理员在内的多个用户角色,则仅安全日志管理员角色生效;若AAA服务器同时为用户授权了包括三权分立管理员角色(system-admin、security-admin或audit-admin角色)在内的多个用户角色,则仅下发的用户角色列表中的首个三权分立管理员角色生效。
对于通过本地AAA认证登录设备的用户,由本地用户配置决定为其授权的用户角色。有关AAA以及本地用户相关配置的详细介绍请参见“安全配置指导”中的“AAA”。
· 由于本地用户缺省就拥有一个用户角色,如果要赋予本地用户新的用户角色,请确认是否需要保留这个缺省的用户角色,若不需要,请删除。
· 系统中的最后一个安全日志管理员角色的本地用户不可被删除。
· 安全日志管理员与其它用户角色互斥,为一个本地用户授权安全日志管理员角色时,经过界面的交互式确认后,系统会自动删除当前用户的所有其它他用户角色。
· 如果已经为当前本地用户授权了安全日志管理员角色,再授权其它的用户角色时,经过界面的交互确认后,系统会自动删除当前用户的安全日志管理员角色。
· 三权分立管理员角色(system-admin、security-admin和audit-admin角色)与其它用户角色互斥,因此在为一个本地用户授权此类用户角色时,系统会通过提示信息请求确认是否删除当前用户的所有其它用户角色。
· 三权分立管理员角色(system-admin、security-admin和audit-admin角色)之间互斥,如果为当前本地用户授权了三权分立管理员角色中的一个,再授权其它的两个用户角色时,系统会通过提示信息请求确认是否删除当前用户的角色。
· 可通过多次执行该配置,为本地用户授权多个用户角色,最多可授权64个。
(1) 进入系统视图。
system-view
(2) 创建本地用户,并进入本地用户视图。
local-user user-name class { manage | network }
(3) 为本地用户授权用户角色。
authorization-attribute user-role role-name
缺省情况下,在缺省Context中由用户角色为network-admin或者level-15的用户创建的本地用户被授权用户角色network-operator;在非缺省Context中由用户角色为context-admin或者level-15的用户创建的本地用户被授权用户角色context-operator。
对于不使用AAA认证登录设备的非SSH用户,由用户线配置决定为其授权的用户角色。有关用户线相关配置的详细介绍请参见“基础配置指导”中的“登录设备”。
通过publickey或password-publickey认证登录设备的SSH用户,由同名的设备管理类本地用户配置决定为其授权的用户角色。SSH用户相关的介绍请参见“安全配置指导”中的“SSH”。
可通过多次执行本命令,配置多个用户角色,最多可配置64个。
不能为从当前用户线登录系统的用户授权安全日志管理员的用户角色。
不能为从当前用户线登录系统的用户授权三权分立管理员的用户角色。
(1) 进入系统视图。
system-view
(2) 进入用户线或用户线类视图。
¡ 进入用户线视图。
line { first-num1 [ last-num1 ] | { console | vty } first-num2 [ last-num2 ] }
¡ 进入用户线类视图。
line class { console | vty }
关于用户线和用户线视图下各属性生效情况和优先级的详细介绍,请参见“基础配置指导”中的“登录设备”。
(3) 为从当前用户线登录系统的用户配置授权的用户角色。
user-role role-name
缺省情况下,在缺省Context中使用Console/AUX用户线的用户将被授权用户角色network-admin,使用其它用户线的用户将被授权用户角色network-operator;在非缺省Context中network-admin用户将被授权用户角色context-admin,其它用户将被授权用户角色context-operator。
切换用户角色是指在不退出当前登录、不断开当前连接的前提下修改用户的用户角色,改变用户所拥有的命令行权限。切换后的用户角色只对当前登录生效,用户重新登录后,又会恢复到原有角色。
· 为了防止对设备的误操作,通常情况下建议管理员使用较低权限的用户角色登录设备、查看设备运行参数,当需要对设备进行维护时,再临时切换到较高权限的用户角色。
· 当管理员需要暂时离开设备或者将设备暂时交给其它人代为管理时,为了安全起见,可以临时切换到较低权限的用户角色,来限制其他人员的操作。
· 为了保证操作的安全性,通常用户进行用户角色切换时,均需要输入用户角色切换密码。切换到不同的用户角色时,需要输入相应切换密码。如果服务器没有响应或者没有配置用户角色切换密码,则切换操作失败,若还有备份认证方案,则转而进行备份认证。设备支持如表1-2所示的四种用户角色切换认证方式。
认证方式 |
涵义 |
说明 |
local |
本地密码认证 |
设备验证用户输入的用户角色切换密码 使用该方式时,需要在设备上使用super password命令设置用户角色切换密码 对于Console/AUX口登录的用户,在设备仅采用本地密码切换认证方式且未配置切换密码的情况下,设备不关心用户是否输入切换密码以及输入切换密码的内容,可允许用户成功切换用户角色 |
scheme |
通过HWTACACS或RADIUS进行远程AAA认证 |
设备将用户角色切换使用的用户名和密码发送给HWTACACS/RADIUS服务器进行远程验证 使用该方式时,需要进行以下相关配置: · 在设备上配置HWTACACS/RADIUS方案,并在ISP域中引用已创建的HWTACACS/RADIUS方案,详细介绍请参见“安全配置指导”中的“AAA” · 在HWTACACS/RADIUS服务器上创建相应的用户并配置密码 |
local scheme |
先本地密码认证,后远程AAA认证 |
先进行本地密码认证,若设备上未设置本地用户角色切换密码,使用VTY用户线登录的用户则转为远程AAA认证,使用Console用户线登录的用户则可以成功切换用户角色 |
scheme local |
先远程AAA认证,后本地密码认证 |
先进行远程AAA认证,远程HWTACACS/RADIUS服务器无响应或设备上的AAA远程认证配置无效时,转为本地密码认证 |
· 在进行切换操作前,请先保证配置了正确的用户角色切换密码。
· 当使用HWTACACS方案进行用户角色切换认证时,系统使用用户输入的用户角色切换用户名或登录的用户名进行角色切换认证,HWTACACS服务器上也必须存在相应的用户。
¡ 当用户要切换到level-n的用户角色时,要求HWTACACS服务器上存在能提供切换到level-n角色的用户。在HWTACACS服务器上,支持切换到用户角色level-n的用户也能够支持切换到level-0到level-n之间任意的用户角色。
¡ 当用户要切换到非level-n的用户角色时,要求HWTACACS服务器上存在至少能提供切换到level-0角色的用户,且该用户配置了取值为allowed-roles=”role”的自定义属性(其中role为要切换的目的用户角色名称)。
· 当使用RADIUS方案进行用户角色切换认证时,系统使用“$enabn$”形式的用户名进行用户角色切换认证,其中n为用户希望切换到的用户角色level-n中的n,RADIUS服务器上也必须存在该形式用户名的用户。与HWTACACS不同的是,用户进行角色切换时可输入任意用户名,该名称在认证过程中无实际意义。
¡ 当用户要切换到level-n的用户角色时,要求RADIUS服务器上存在用户名为“$enabn$”的用户。例如,用户希望切换到用户角色level-3,输入任意用户名,系统忽略用户输入的用户名,使用“$enab3$”形式的用户名进行用户角色切换认证。
¡ 当用户要切换到非level-n的用户角色时,要求RADIUS服务器上存在用户名为“$enab0$”的用户,且该用户配置了取值为allowed-roles=”role”的自定义属性(其中role为要切换的目的用户角色名称)。
· 用户进行用户角色切换认证时,系统发送给RADIUS服务器的认证请求报文中的用户名中不会携带域名,系统采用的切换认证方案使用缺省域。
· 用户进行用户角色切换认证时,系统发送给HWTACACS服务器的认证请求报文中的用户名是否携带域名由配置决定(user-name-format),系统采用的切换认证方案由用户输入的用户名中指定的域名决定,若该用户名中未携带域名,则使用缺省域。
· 当用户从用户角色a切换到用户角色b后,若输入quit命令,将退出当前登录的用户线。
(1) 进入系统视图。
system-view
(2) 配置用户角色切换时的认证方式。
super authentication-mode { local | scheme } *
缺省情况下,采用local认证方式。
(1) 进入系统视图。
system-view
(2) 配置用户角色切换的缺省目的用户角色。
super default role role-name
缺省情况下,对于登录缺省Context的用户,用户角色切换的缺省目的角色为network-admin;对于登录非缺省Context的用户,用户角色切换的缺省目的角色为context-admin。
如果用户角色的切换认证方式采用local认证方式,则需要配置用户角色切换的密码。如果采用scheme认证方式则无需此配置。
(1) 进入系统视图。
system-view
(2) 配置用户角色切换的密码。
super password [ role role-name ] [ { hash | simple } string ]
缺省情况下,未设置切换用户角色的密码。
若不指定用户角色,则设置的是切换到当前缺省目的用户角色的密码。
在设备采用远程AAA认证方案进行用户角色切换认证,且用户采用用户名和密码方式登录设备的情况下,用户切换用户角色时,设备会自动获取用户登录使用的用户名作为角色切换认证的用户名,不再需要用户输入用户名。
开启本功能后,若设备采用远程AAA认证方案进行用户角色切换认证,但用户未采用用户名和密码方式登录设备,则用户角色切换失败。
若设备未采用远程AAA认证方案进行用户角色切换认证,则本功能配置无法生效。
(1) 进入系统视图。
system-view
(2) 配置用户角色切换认证时使用用户登录的用户名认证。
super use-login-username
缺省情况下,用户角色切换认证时系统提示用户输入用户名进行认证。
执行用户角色切换命令后,请在60秒内输入用户名和密码(是否需要输入用户名与认证方式有关),否则系统将会因为输入超时而要求重新输入。用户最多可以连续进行三次切换认证,如果三次认证都失败则本轮切换失败。
在与当前登录用户相同的ISP域中执行用户角色切换认证时,如果用户角色切换认证使用的AAA方案与登录域下配置的登录授权方法不同,可能无法切换到非level-n用户角色。
要解决此问题,建议authentication super命令配置的AAA方案与登录域下通过authorization login命令配置的AAA方案保持一致。
AAA相关内容的介绍请参见“安全配置指导”中的“AAA”。
若要执行切换用户角色的操作,必须保证当前用户具有执行本命令的权限。
请在用户视图下执行本命令,切换用户角色。
super [ role-name ]
若不指定用户角色,则切换到当前缺省目的用户角色。缺省的目的用户角色由super default role命令指定。
完成上述配置后,在任意视图下执行display命令可以显示配置后RBAC的运行情况,通过查看显示信息验证配置的效果。
表1-3 RBAC显示和维护
操作 |
命令 |
显示用户角色信息 |
display role [ name role-name ] |
显示特性信息 |
display role feature [ name feature-name | verbose ] |
显示特性组信息 |
display role feature-group [ name feature-group-name ] [ verbose ] |
用户通过本地认证并被授权指定的用户角色后,发现登录设备后实际具有的权限与被授权的用户角色权限不符。
可能是该本地用户被授权了其它用户角色,例如该本地用户还具有缺省的用户角色。
通过display local-user命令查看该用户实际拥有的用户权限,并删除授予用户的多余用户角色。
在AAA配置正确及设备与服务器通信无故障的情况下,使用RADIUS服务器进行远程身份认证的用户登录设备失败。
RBAC要求登录设备的用户必须至少拥有一个用户角色,如果用户没有被服务器授权任何用户角色,则登录失败。
通过执行role default-role enable命令允许用户使用系统预定义的缺省用户角色登录设备,或根据需要在服务器上为该用户添加要授权的用户角色。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!