具体实施方式
本发明实施例要解决的技术问题是提供一种访问控制列表授权控制方法、装置和系统,能够简化权限的表示。
本发明实施例提供的一种权限控制方法可以通过以下技术方案实现:
接收管理服务器发送的操作命令;判断所述管理服务器是否具有更改访问控制列表权限;如果是,则执行所述操作命令。
上述方法的执行主体可以为终端设备,可以理解的是终端设备有很多种,具体是哪一种终端设备不应作为本发明实施例的限定。
上述方案通过判断服务器是否具有更改访问控制列表更改权限,来判断所有其他的操作权限,使得服务器具有更改访问控制列表权限时只需要使用一个标识来表示,能够简化权限的表示。
实施例一,当上述操作命令为更改访问控制列表命令时,本发明实施例提供的授权控制的方法可以通过如下步骤实现,如图2所示;
步骤201:接收管理服务器发送的更改访问控制列表命令;
步骤202:根据访问控制列表更改权限标识判断管理服务器是否对所述访问控制列表具有更改权限;
在本步骤执行前需要将ACL更改权限标识载入ACL,具有ACL更改权限标识的管理服务器具有更改ACL的权限;ACL更改权限标识可以用ACL_Change来表示,可以用ACL_Change=<server-identifiers>表示管理服务器server-identifiers具有对该节点的ACL进行更改的权限;访问控制列表更改权限标识不用于表示更改节点值的权限等更改访问控制列表权限以外的其他更改权限;可以理解的是对于ACL权限的标识的名称和授权形式并不对本发明实施例构成限定;
当接收到其它操作命令时,例如接收到第二更改命令时,所述第二更改命令为:更改访问控制列表命令以外的其它更改命令;所述管理服务器具有更改访问控制列表权限时,确定所述管理服务器具有更改访问控制列表命令以外的其它操作权限,可以执行所述第二更改命令。当然其它操作命令并不仅限于第二更改命令,还可以是查找等操作命令。
在后续实施例中将以更改节点值命令作为第二更改命令的例子进行说明,可以理解的是更改节点值命令不是所述第二更改命令的穷举,不应理解为对第二更改命令的限定。
步骤203:是则执行更改访问控制列表命令,否则拒绝执行更改访问控制列表命令。
上述步骤的执行主体可以为终端设备,可以理解的是终端设备有很多种,具体是哪一种终端设备不应作为本发明实施例的限定。
上述步骤201还可以接收管理服务器发送的除更改访问控制列表命令以外的其它更改命令,这时可以判断更改节点权限标识是否标示所述服务器具有所述其它权限;如果是,则执行所述除更改访问控制列表命令以外的其它更改命令。
所述ACL更改权限标识还可以拆分成更细化的更改权限标识,如ACL更改权限标识ACL_Replace、ACL增加权限标识ACL_Add、ACL删除权限标识ACL_Delete等来标识管理服务器是否具有对应的操作权限;
原有的更改节点权限标识可以仍然为原有的属性;也可以将更改节点权限标识的属性限定在对节点值等更改权限的判断,而不再具有标识ACL更改权限的用途,后一种方式可以分别独立表示更改节点值权限和更改访问控制列表权限,为优选方案,可以理解的是原有的更改节点权限标识的属性是否更改不影响本发明实施例的实现。
可以设定访问控制列表更改权限标识不存储于管理树的叶子节点,当接收到的更改访问控制列表命令指向的节点为访问控制列表管理树的叶子节点时,根据所述叶子节点的父节点存储的更改访问控制列表权限标识来判断所述服务器是否具有更改访问控制列表的权限。
通过增加更改访问控制列表权限标识标示ACL的更改权限,将ACL的更改权限与其它更改权限分离,使权限分工明确,达到操作井然有序。
实施例二,本发明实施例还提供了子节点继承根节点的方法,如图3所示:
步骤301:接收管理服务器发送的更改访问控制列表命令;当然这里也可以是其它操作命令;所述其它操作命令为更改访问控制列表以外的其它任何操作命令,例如第二更改命令,查询命令等;
步骤302:根据访问控制列表更改权限标识判断管理服务器是否对所述访问控制列表具有更改权限;相应的步骤301如果为其它操作命令这里需要判断是否具有其它对应的权限;
步骤303:当操作命令指向的节点中对应的权限标识为空,则可以获取操作命令指向的节点的管理对象的根节点的位置;为叙述方便,统称操作命令指向的节点的管理对象的根节点为操作命令指向的节点的根节点,后续描述不再赘述。
本实施例可以在MO的根节点设置根节点的所有子节点ACL标识的权限,子节点均直接继承MO根节点的ACL,子节点的ACL可以为空;本实施例并不仅仅局限于更改访问控制列表命令,其它操作命令也可以一并参考本实施例;
获取上述更改访问控制列表命令指向节点的根节点的方法可以是:
存储上述命令指向的节点与其根节点的对应关系;
所述子节点与其根节点的对应关系可以存储在终端上,当然存储在其它位置也可以,本发明实施例并不对此进行限定;
根据所述存储的子节点与其根节点的对应关系获取子节点的根节点的位置;或
接收服务器发送的操作命令,所述操作命令包含子节点的根节点的位置信息;服务器在发送命令前可以通过DDF确定MO根节点的位置,然后在下发管理命令的消息中同时指定MO的根节点,当然采用其它方式确定根节点的位置不影响本发明实施例的实现。
根据所述根节点的位置信息获取根节点的位置。当然还可以有其它方式获取根节点的位置,本实施例并不对获取的方式进行限定。
步骤304:根据所述根节点存储的更改权限标识判断所述管理服务器是否对所述访问控制列表具有更改权限;当为其它操作命令时,此处应为根据根节点存储的其它权限标识判断管理服务器是否具有其它操作权限;
在步骤303之前还可以先获取用标志位标示的继承规则,那么:
可以设置标志位来决定ACL的继承规则,所述标志位可以在服务器发送的管理命令中指定,也可以预置在终端,还可以存储在管理树的某个节点中,例如在设备信息DevInfo或设备细节DevDetail等管理对象的某节点中,通过对节点值的设置来指定继承规则;还可以作为执行管理命令的参数与管理命令一起发送,而对该参数的支持也可反映在终端的设备信息中,例如设备信息中有一个SupportACLFromMO节点,该节点存在与否或其节点值可用于表示终端是否支持从MO根节点继承ACL。当然,标志位还可以标志某个节点的ACL值为非空时继承或不继承MO根节点的ACL。
步骤305:如果所述管理服务器对所述访问控制列表具有更改权限则执行更改访问控制列表命令;当为其它操作命令时,如果所述管理服务器对所述访问控制列表具有更改权限,则执行其它操作命令。
上述步骤的执行主体可以为终端设备,可以理解的是终端设备有很多种,具体是哪一种终端设备不应作为本发明实施例的限定。
上述实施例将子节点的ACL统一存储在根节点的ACL内,方便统一管理提高了设置、更改等管理的效率。根节点位置通过命令携带或存储的方式可以方便地找到根节点,提高了判断权限的效率。
增加的标志位标识继承规则使子节点继承根节点的方式更灵活。
当操作命令指向节点的ACL为空或非空的时候仍然能够从其根节点ACL中判断出管理服务器的权限,实现了在ACL为空或非空的时候子节点仍然能继承根节点存储的权限。
实施例三,本发明实施例还提供了操作命令的执行方法,如图4所示:
步骤401:接收管理服务器发送的更改访问控制列表命令;
所述更改访问控制列表命令可以使用包括更改ACL_Replace、增加ACL_Add、删除ACL_Delete等标识来确定权限;各种更改命令的执行过程在本实施例将有更详细的说明;可以理解的是命令的名称对本发明实施例不构成限定;
步骤402:根据访问控制列表更改权限标识判断管理服务器是否对所述访问控制列表具有更改权限;
步骤403:是则查找访问控制列表中需要更改的项;
步骤404:更改所述需要更改的项。
上述步骤的执行主体可以为终端设备,可以理解的是终端设备有很多种,具体是哪一种终端设备不应作为本发明实施例的限定。
下面将以增加Add、删除Delete操作为例进行详细说明,可以理解的是更改操作并不仅限于增加和删除。对于服务器是否有权限使用Add、Delete命令来设置ACL,可以用ACL_Add和ACL_Delete标识来分别限定;也可以使用Add和Delete标识来限定,例如Add=321_ibm.com&Delete=321_ibm.com表示服务器321_ibm.com可以使用Add和Delete命令来设置ACL;另外还可以仍然使用Replace条目来限定,例如Replace=321_ibm.com表示服务器321_ibm.com可以使用Add和Delete命令来设置ACL。
本发明实施例使用Add命令来为节点A的ACL添加值,可以为:
<Add>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Add命令的目标是节点A的ACL-->
<Data>”Replace=321_ibm.com”</Data><!--表示为节点A的ACL添加一个服务器-->
</Item>
</Add>
在上述命令<Target><LocURI>这一行表示Add命令是针对节点A的ACL进行添加。<Data>这一行的字符串“Replace=321_ibm.com”表示为该节点的Replace权限添加一个服务器321_ibm.com。命令执行完后,节点A的ACL即变为Replace=www.sonera.fi-8765+321_ibm.com。另外,若原ACL中没有Replace这个条目,则该命令即对该节点增加Replace这个条目。
再举一例,例如节点A的ACL为:
Get=*&Add=www.sonera.fi-8765
服务器下发命令添加ACL值,可以为:
<Add>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Add命令的目标是节点A的ACL-->
<Data>”Get=321_ibm.com&Add=*&Replace=321_ibm.com”</Data><!--表示为节点A的ACL添加ACL值-->
</Item>
</Add>
则添加后的ACL为:
Get=*&Add=*&Replace=321_ibm.com
其中,由于原来Get=*,所以添加一个服务器后仍然保持不变;原来Add=www.sonera.fi-8765,添加Add=*后,变为Add=*;另外还添加了Replace=321_ibm.com条目。
可以理解的是以上两个例子并不是添加命令的穷举,所以添加命令的具体形式不对本发明构成限定。
本发明实施例使用Delete命令来删除节点A的ACL值,可以为:
例如节点A原有的ACL为:
Get=*&Replace=321_ibm.com&Delete=www.sonera.fi-8765+321_ibm.com
执行Delete命令为:
<Delete>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Delete命令的目标是节点A的ACL-->
<Data>”Get=321_ibm.com&Replace=321_ibm.com&Delete=321_ibm.com”</Data><!--表示为节点A删除一些ACL值-->
</Item>
</Delete>
由于原来Get=*,所以从其中删除掉Get=321_ibm.com时可以有几种处理方式,一是采用一种新的表示方法来表示排除掉的服务器,如Get=*-321_ibm.com;二是向服务器反馈错误,然后服务器重新处理。采用第一种处理方式时,“-”号为保留字符,当然,也可以使用其它字符作为保留字符,例如“^”、“~”等,此时服务器标识中不能再使用保留字符。
现假设采用第一种处理方式,则删除后节点A的ACL可以为:
Get=*-321_ibm.com&Delete=www.sonera.fi-8765
如果需要删除服务器在节点A上的所有权限,还可以用这样的方式来表示,如:
<Delete>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Delete命令的目标是节点A的ACL-->
<Data>”321_ibm.com”</Data><!--表示为节点A删除321_ibm.com服务器的所有权限-->
</Item>
</Delete>
可以用<Data>”Replace”</Data>表示删除该节点ACL的Replace条目;用<Data>”all”</Data>或在命令中不包含<Data>行表示删除整个ACL值,节点的ACL即变为空。
本发明实施例还可以使用Get命令获取节点ACL中与某服务器对应的权限信息。例如节点A的ACL为:
Get=*&Replace=321_ibm.com&Delete=www.sonera.fi-8765+321_ibm.com
服务器使用Get命令,可以为:
<Get>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Get命令的目标是节点A的ACL-->
<Data>”321_ibm.com”</Data><!--表示获取节点A关于321_ibm.com服务器的所有权限-->
</Item>
</Get>
终端向服务器反馈的消息可以为:
<Results>
<MsgRef>1</MsgRef><CmdRef>4</CmdRef>
<CmdID>3</CmdID>
<Item>
<Source>
<LocURI>./A?prop=ACL</LocURI><!--表示反馈的是节点A的ACL相关信息-->
</Source>
<Data>”Get=321_ibm.com & Replace=321_ibm.com &Delete=321_ibm.com”</Data><!--表示节点A关于321_ibm.com服务器的所有权限-->
</Item>
</Results>
上述命令中终端将在<Data>中反馈节点A的所有关于321_ibm.com服务器的权限信息,本发明实施例对反馈的方式不限定为ACL值的形式,能表示出服务器在该节点上具有的权限的其它方式不影响本发明实施例的实现,例如可以这样表示:<Data>”Get,Replace,Delete”</Data>。
另外服务器还可以获取哪些服务器具有某种指定权限,如:
<Get>
<CmdID>4</CmdID>
<Item>
<Target><LocURI>./A?prop=ACL</LocURI></Target><!--表示Get命令的目标是节点A的ACL-->
<Data>”Delete”</Data><!--表示获取对节点A有Delete权限的所有服务器的信息-->
</Item>
</Get>
在反馈消息中,终端告知相关信息,例如:
<Data>”www.sonera.fi-8765+321_ibm.com”</Data>。
服务器在下发的获取命令中可以包括服务器标识或某个操作的标识,终端需要区分是前者还是后者,可以这样来判断,先判断是否是操作的标识,若不是,则认为是服务器标识。当然,服务器也可以在获取命令中明确说明是服务器标识还是操作标识。
以上对几种操作命令进行了详细介绍,可以理解的是上述例子并不是对应操作的穷举,上述具体的实现方式不对本发明实施例构成限定。
上述实施例通过查询对应的操作条目,然后对对应的条目进行修改,不需要获取ACL的全部然后再整体更改,使设置更加灵活方便。
实施例四,本发明实施例还提供了通过表示零个到任意多个字符的通配符来表示一类管理服务器的方法。
通常服务器可以是“*”或“=”“&”“*”“+”等已经具有特定用途的字符以外的字符标识。“*”表示所有服务器都具有相应权限,而后者为指定一个有权限的服务器。这样的表示方法只能表示全体服务器或指定的一个服务器,而不能表示指定的一类服务器,举例说明本发明实施例提供标识服务器的方法,可以为:
Add=www.sonera.fi*&Replace=www.sonera.fi*+32?_ibm.com&Get=*
其中www.sonera.fi*可以表示以www.sonera.fi开头的所有服务器,包括www.sonera.fi服务器本身,而“*”代表0个到任意多个其它任何合法字符,例如www.sonera.fi-123、www.sonera.fi.abc等。
其中32?ibm.com中的问号“?”可以代表0个或1个其它任何合法字符,例如32_ibm.com、323_ibm.com。
这里“*”和“?”可以用在服务器标识的任意位置。
服务器标识的语法可以为:<服务器标识>::=*|“除了‘=’,‘&’,‘+’等已经具有特定用途的字符和空格以外的所有可显示字符”。
可以理解的是根据上述实施例的思想还可以有很多类型的通配符,并且有不同的符号,所以通配符表示字符的形式和通配符的符号都不对本实施例构成限定。
上述实施例通过增加同配符的方式,达到了表示一类指定服务器的目的,当进行操作时可以对指定的一类服务器进行需要的操作,使操作更简便。
实施例五,本发明实施例还提供另一种授权控制的方法,如图5所示:
步骤501:接收管理服务器发送的更改访问控制列表命令;
步骤502:根据更改节点权限标识判断所述管理服务器是否具有更改权限;若是,则判断所述服务器是否具有更改访问控制列表权限;
上述判断所述服务器是否具有更改访问控制列表权限;可以是:获取所述服务器的排序位置;当所述位置在排序的指定范围时,判断所述服务器具有更改访问控制列表权限;
上述获取所述服务器的排序位置;可以是:获取所述服务器的优先级;当所述优先级为最高优先级时,判断所述服务器具有更改访问控制列表权限。使用最高优先级只是为了区别于其它更改权限,当然这里最高优先级也可理解为最低优先级,或者其它能够确定的优先级;甚至是具有一定优先级的服务器;可以理解的是优先级的表述不会对本发明实施例造成限定;
举例说明优先级的判断方法:
假如节点A原始的ACL为:Replace=www.sonera.fi-8765;
表示服务器www.sonera.fi-8765对节点A的值具有更改节点值权限,包括更改节点A的ACL属性。现若欲使用服务器321_ibm.com对节点A进行管理,则原服务器www.sonera.fi-8765可以把新服务器标识321_ibm.com加入其中,节点A的ACL变为:Replace=www.sonera.fi-8765+321_ibm.com;
按照现有技术两个服务器对节点A的值都有更改节点值权限,我们可以规定排在最前面的服务器www.sonera.fi-8765具有最高的优先级。可以理解的是本发明并不限定具有最高优先级的服务器的规定方式,规定具有最高优先级的服务器的方式并不对本发明构成限定。
步骤503:如果均为是则执行更改访问控制列表命令,否则拒绝执行更改访问控制列表命令。
上述步骤的执行主体可以为终端设备,可以理解的是终端设备有很多种,具体是哪一种终端设备不应作为本发明实施例的限定。
通过服务器权限的排序,例如优先级排序的判断可实现授予一个或几个服务器具有更改访问控制列表的目的,并且其它服务器仍然能够被授予更改节点值的权限,使权限分工明确,达到操作井然有序。
实施例五与实施例一的区别在于,实施例五为可以通过判断优先级来区分节点值的更改权限与更改ACL的权限,实施例一为,增加权限标识来区分上述两种权限;在实施例五的基础上综合运用实施例二到实施例四的方法与实施例一综合运用实施例二到实施例四的方法类似,不同点在于实施例五中最高优先级的服务器对应实施例一中具有更改访问控制列表权限的服务器,以实施例五为基础的其它实施例的具体实施方式在此不再赘述。
实施例六,如图6所示,本发明实施例还提供了一种授权控制装置,包括:
命令接收单元601,用于接收管理服务器发送的操作命令;
权限判断单元602,用于判断所述管理服务器是否具有更改访问控制列表权限;
命令执行单元603,用于当所述判断为是则执行所述操作命令。
上述方案通过判断服务器是否具有更改访问控制列表更改权限,来判断所有其他的操作权限,使得服务器具有更改访问控制列表权限时只需要使用一个标识来表示,能够简化权限的表示。
当然,上述操作命令可以为更改访问控制列表命令,这时;
所述命令接收单元601可以包括命令接收子单元,用于接收更改访问控制列表命令;
所述权限判断单元602可以包括权限判断子单元,用于判断预置的访问控制列表更改权限标识是否表示所述管理服务器对所述命令指向的访问控制列表具有更改权限;
所述命令执行单元603可以包括命令执行子单元,用于执行所述更改访问控制列表命令。
通过增加更改访问控制列表权限标识标示ACL的更改权限,将ACL的更改权限与其它更改权限分离,使权限分工明确,达到操作井然有序。
实施例七,如图7所示,上述命令执行单元603可以包括:
操作项查找单元701,用于查找所述操作命令指向操作项;
命令执行单元702,用于执行所述操作命令。
上述实施例通过查找到对应项后执行操作命令,可以针对单个项进行操作,使操作更加灵活。
实施例八,如图8所示,本发明实施例还提供了另一种授权控制装置,包括:
命令接收单元801,用于接收管理服务器发送的操作命令;
权限判断单元802,用于根据所述操作命令对应的权限标识判断所述服务器是否具有所述操作权限;根据所述根节点存储的所述操作命令对应的权限标识判断所述服务器是否具有所述操作权限;
根节点位置获取单元803,用于当根据所述操作命令对应的权限标识所述服务器不具有所述操作权限,则获取所述操作命令指向节点的管理对象的根节点的位置;
命令执行单元804,用于当所述根节点存储的所述操作命令对应的权限标识所述服务器具有所述操作权限时,执行所述操作命令。
上述实施例通过获取存储的根节点的位置可以直接得到,然后继承根节点的权限,使权限的继承更加方便。
实施例九,如图9所示,所述根节点位置获取单元803还可以包括:
根节点位置存储单元901,用于存储所述命令指向的节点与其管理对象的根节点的对应关系;
根节点位置查找单元902,用于根据所述存储的所述命令指向的节点与其管理对象的根节点的对应关系查找所述命令指向节点的管理对象的根节点的位置;或如图10所示
根节点位置接收单元1001,用于接收服务器发送的操作命令,所述操作命令包含所述命令指向节点的管理对象的根节点的位置信息;
根节点位置查找单元1002,用于根据所述根节点的位置信息获取根节点的位置。
实施例十,本发明实施例还提供了另一种授权控制装置,包括:
操作命令接收单元1101,用于接收管理服务器发送的更改访问控制列表命令;
操作权限判断单元1102,根据更改节点权限标识判断所述管理服务器是否具有更改权限;若是,则判断所述服务器是否具有更改访问控制列表权限;
操作命令执行单元1103,用于如果所述判断均为是则执行更改访问控制列表命令。
通过服务器权限的排序,例如优先级排序的判断可实现授予一个或几个服务器具有更改访问控制列表的目的,并且其它服务器仍然能够被授予更改节点值的权限,使权限分工明确,达到操作井然有序。
实施例十一,如图12所示,本发明实施例还提供了一种授权控制系统,可以包括:管理服务器1201,终端1202;
管理服务器1201,用于发送操作命令给终端1202;
终端1202,用于接收管理服务器1201发送的操作命令;判断所述管理服务器1201是否具有更改访问控制列表权限;如果是,则执行所述操作命令。
通过判断服务器是否具有更改访问控制列表更改权限,来判断所有其他的操作权限,使得服务器具有更改访问控制列表权限时只需要使用一个标识来表示,能够简化权限的表示。
可以一并参阅图12,本发明实施例还提供了另一种授权控制系统,包括:
管理服务器1201,终端1202;
管理服务器1201,用于发送操作命令给终端1202;
终端1202,用于接收管理服务器1201发送的操作命令;根据所述操作命令对应的权限标识判断所述服务器1201是否具有所述操作权限;如果否,则获取所述操作命令指向节点的管理对象的根节点的位置;根据所述根节点存储的所述操作命令对应的权限标识判断所述服务器1201是否具有所述操作权限,如果是,则执行所述操作命令。
上述实施例将子节点的ACL统一存储在根节点的ACL内,方便统一管理提高了设置、更改等管理的效率。根节点位置可以通过命令携带或存储的方式方便地找到根节点,提高了判断权限的效率。
可以一并参阅图12、本发明实施例又提供了再一种授权控制系统,包括:
管理服务器1201,终端1202;
管理服务器1201,用于发送操作命令给终端1202;
终端1202,用于接收管理服务器1201发送的更改访问控制列表命令;根据更改节点权限标识判断所述管理服务器1201是否具有更改权限;若是,则判断所述服务器1201是否具有更改访问控制列表权限;若是,则执行更改访问控制列表命令。
判断所述服务器1201是否具有更改访问控制列表权限;的方法可以参阅方法实施例五;通过服务器权限的排序,例如优先级排序的判断可实现授予一个或几个服务器具有更改访问控制列表的目的,并且其它服务器仍然能够被授予更改节点值的权限,使权限分工明确,达到操作井然有序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,所述存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种访问控制列表授权控制方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。