具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明授权方法一个实施例的流程图,如图1所示,该授权方法可以包括:
步骤101,终端设备接收无访问权限的控制设备的权限申请请求。
本实施例中的终端设备可以为UPnP设备等终端设备,本实施例对终端设备的具体形式不作限定;本实施例中无访问权限的控制设备可以为无访问权限的控制点(Control Point;以下简称:CP),本实施例对无访问权限的控制设备的具体形式也不作限定。
步骤102,终端设备通知具有管理员权限的控制设备为上述无访问权限的控制设备分配权限。
本实施例中,具有管理员权限的控制设备可以为具有管理员权限的CP,本实施例对具有管理员权限的控制设备的具体形式不作限定。
步骤103,终端设备接收具有管理员权限的控制设备的权限分配命令,为该无访问权限的控制设备分配权限。
本实施例的一种实现方式中,在步骤101,终端设备接收无访问权限的控制设备的权限申请请求之前,终端设备还可以接收无访问权限的控制设备的查询请求;该查询请求用于查询对终端设备执行待执行管理操作所需的权限信息;然后,终端设备可以根据该查询请求将无访问权限的控制设备对该终端设备执行上述待执行管理操作所需的权限信息发送给无访问权限的控制设备;这样,终端设备接收无访问权限的控制设备的权限申请请求可以为:终端设备接收无访问权限的控制设备发送的至少包含待授权信息的权限申请请求,该待授权信息至少包括无访问权限的控制设备查询到的权限信息。
当该待执行管理操作包括与数据模型相关的待执行管理操作时,上述查询请求可以进一步用于查询对该待执行管理操作对应的参数进行操作所需的权限信息。
本实施例的另一种实现方式中,该权限申请请求至少包含无访问权限的控制设备对终端设备的待执行管理操作的名称;本实现方式中,终端设备通知具有管理员权限的控制设备为上述无访问权限的控制设备分配权限之前,该终端设备还可以至少根据该无访问权限的控制设备对终端设备的待执行管理操作的名称,确定无访问权限的控制设备对该终端设备执行上述待执行管理操作所需的权限信息;然后,终端设备可以至少根据确定的权限信息生成待授权信息。
当待执行管理操作包括与数据模型相关的待执行管理操作时,该权限申请请求进一步携带上述待执行管理操作对应的参数的名称;这时,在终端设备通知具有管理员权限的控制设备为上述无访问权限的控制设备分配权限之前,该终端设备还可以至少根据该待执行管理操作对应的参数的名称,确定无访问权限的控制设备对该待执行管理操作对应的参数进行操作所需的权限信息。
本实施例上述两种实现方式中,终端设备通知具有管理员权限的控制设备为无访问权限的控制设备分配权限可以为:终端设备保存上述待授权信息,向具有管理员权限的控制设备发送通知消息;其中,该通知消息用于通知具有管理员权限的控制设备到该终端设备上查询上述待授权信息,为该无访问权限的控制设备分配权限;或者,该通知消息可以携带待授权信息,也就是说,终端设备可以通过通知消息将待授权信息发送给具有管理员权限的控制设备,以通知具有管理员权限的控制设备为该无访问权限的控制设备分配权限。
本实施例中,在步骤103,终端设备接收具有管理员权限的控制设备的权限分配命令,为该无访问权限的控制设备分配权限之后,该终端设备还可以通知该无访问权限的控制设备已授权。
进一步地,本实施例中,终端设备通知具有管理员权限的控制设备为无访问权限的控制设备分配权限之后,该终端设备接收具有管理员权限的控制设备的权限分配命令之前,具有管理员权限的控制设备需要先确定无访问权限的控制设备合法,再向终端设备发送上述权限分配命令。
其中,上述待授权信息还可以包括认证码和该无访问权限的控制设备的标识,其中,该认证码可以包括无访问权限的控制设备的个人标识号码(Personal Identification Number;以下简称:PIN)与无访问权限的控制设备的标识的第一哈希值;则具有管理员权限的控制设备确定无访问权限的控制设备合法可以为:具有管理员权限的控制设备接收无访问权限的控制设备的PIN,计算该PIN与该无访问权限的控制设备的标识的第二哈希值;然后比较第二哈希值与第一哈希值,当第二哈希值与第一哈希值相同时,具有管理员权限的控制设备确定该无访问权限的控制设备合法。
或者,上述认证码也可以包括无访问权限的控制设备的证书;则具有管理员权限的控制设备确定无访问权限的控制设备合法可以为:具有管理员权限的控制设备通过根证书对该无访问权限的控制设备的证书进行认证,认证通过之后,确定该无访问权限的控制设备合法。
本实施例中,待授权信息可以有多种实现形式,例如:待授权信息可以列表或数组等多种形式实现,本实施例对待授权信息的具体实现形式不作限定。
上述实施例中,终端设备接收到无访问权限的控制设备的权限申请请求之后,通知具有管理员权限的控制设备为该无访问权限的控制设备分配权限;然后终端设备可以接收具有管理员权限的控制设备的权限分配命令,为该无访问权限的控制设备分配权限;从而可以实现无访问权限的控制设备主动申请权限,获得对终端设备执行待执行管理操作的授权,进而可以方便用户的操作。
图2为本发明授权方法另一个实施例的流程图,本实施例以终端设备为UPnP设备,无访问权限的控制设备为控制点为例进行说明。
如图2所示,该授权方法可以包括:
步骤201,控制点对UPnP设备执行管理操作。
步骤202,UPnP设备对控制点进行权限认证,发现该控制点无权执行上述管理操作,向控制点返回无权执行该管理操作的响应,例如:error code=606。
本实施例中,步骤201与步骤202是可选步骤。
步骤203,控制点向UPnP设备发送查询请求,以查询执行上述管理操作所需的权限。
具体地,控制点可以采用以下方式进行查询。
方案一:
步骤1,通过GetRolesForAction命令查询执行某一管理操作所需的权限;
步骤2,对于与数据模型相关的管理操作,进一步查询对该管理操作对应的参数进行操作所需的权限,具体可以通过以下命令实现:
新增管理操作命令:getrolesfordatamodel();
参数:Operation:对该管理操作对应的参数待执行的操作,该参数的取值可以为读操作(read)、写操作(write)和列表操作(list);
ParameterList:待查询权限的参数列表;
功能:查询对管理操作对应的参数进行操作所需的权限。
方案二:
步骤1,查询执行所有待执行管理操作所需的权限,具体可以通过以下命令实现:
新增管理操作命令:GetRolesForActionList();
参数:ActionList,待查询权限的管理操作列表;
功能:查询执行所有待执行管理操作所需的权限。
步骤2,对于与数据模型相关的待执行管理操作,进一步查询对该管理操作对应的参数进行操作所需的权限,具体可以使用getrolesfordatamodel()命令查询,该命令的描述参见方案一中的描述,在此不再赘述。
方案三:
步骤1,查询执行所有待执行管理操作和该待执行管理操作对应的参数所需的权限,具体可以通过以下命令实现:
新增管理操作命令:GetRoles();
参数:actionList:所有待执行管理操作和该待执行管理操作对应的参数;
功能:查询执行所有待执行管理操作所需的权限和对该待执行管理操作对应的参数进行操作所需的权限。
步骤204,UPnP设备根据上述查询请求将所需的权限信息发送给控制点。
步骤205,控制点向UPnP设备发送权限申请请求。本实施例中,该权限申请请求携带控制点的标识(Control Point Identifier;以下简称:CPID)、待申请的角色(Role)和认证码(Authcode),具体地,该权限申请请求可以如下所示:
新增管理操作命令:ApplyRole();
参数:CPID:控制点的标识;
Role:待申请的角色,用于指示该控制点对该UPnP设备执行上述管理操作所需的权限信息;
AuthCode:认证码,可以为控制点的PIN与CPID的第一哈希(hash)值或该控制点的证书,用于对该控制点进行合法性认证。
步骤206,UPnP设备将权限申请请求携带的该控制点对该UPnP设备执行上述管理操作所需的权限信息加入到待授权列表中。其中,待授权列表为待授权信息的一种实现形式,当然待授权信息还可以其他形式实现,例如数组等,本实施例对此不作限定。
本实施例中,该待授权列表的格式可以为:
步骤207,UPnP设备通知具有管理员权限的控制点为控制点分配权限。
本实施例中,UPnP设备可以向至少一个具有管理员权限的控制点组播待授权通知事件,以通知具有管理员权限的控制点为控制点分配权限;或者,也可以既向至少一个具有管理员权限的控制点中的组播待授权通知事件,又向每个具有管理员权限的控制点单播该待授权通知事件,以通知具有管理员权限的控制点为控制点分配权限。
步骤208,具有管理员权限的控制点启动授权流程,到UPnP设备上查询待授权列表。
步骤209,具有管理员权限的控制点验证待授权列表中的控制点的合法性。如果具有管理员权限的控制点确定待授权列表中的控制点合法,则执行步骤210;如果具有管理员权限的控制点确定待授权列表中的控制点不合法,则结束本次流程。
具体地,具有管理员权限的控制点可以接收待授权列表中的控制点的PIN,然后计算PIN与CPID的第二哈希值,与步骤206待授权列表中的第一哈希值进行比较,如果相同,则确定待授权列表中的控制点合法;如果第二哈希值与第一哈希值不同,则确定待授权列表中的控制点不合法;其中,待授权列表中的控制点的PIN是由使用具有管理员权限的控制点的用户预先获得,并在具有管理员权限的控制点提示后输入的;举例来说,具有管理员权限的控制点查询到待授权列表之后,可以向使用具有管理员权限的控制点的用户提示输入待授权列表中的控制点的PIN,之后,具有管理员权限的控制点可以接收使用具有管理员权限的控制点的用户输入的PIN,然后计算接收到的PIN与CPID的第二哈希值;
或者,
具有管理员权限的控制点可以使用根证书对待授权列表中的控制点的证书进行认证,如果认证通过,则确定待授权列表中的控制点合法;如果认证未通过,则确定待授权列表中的控制点不合法。
步骤210,具有管理员权限的控制点向UPnP设备发送权限分配命令。具体地,该权限分配命令可以为AddRolesForIdentity()命令。
步骤211,UPnP设备接收具有管理员权限的控制点发送的权限分配命令,为控制点分配权限。
步骤212,UPnP设备通过事件通知控制点已授权。
具体地,可以增加状态变量控制点标识列表(CPIDlist),用于记录权限发生变化的控制点的标识。
步骤213,控制点对UPnP设备执行管理操作。
上述实施例中,接收到UPnP设备返回的无权执行该管理操作的响应之后,控制点可以先向UPnP设备查询执行上述管理操作所需的权限,再向UPnP设备申请该权限;接收到控制点的权限申请请求之后,UPnP设备先将执行上述管理操作所需的权限加入到待授权列表,并通知具有管理员权限的控制点到该UPnP设备上查询待授权列表;在具有管理员权限的控制点确定该待授权列表中的控制点合法,并在该UPnP设备上为待授权列表中的控制点授权之后,该UPnP设备通知上述控制点已授权;从而可以实现无权执行管理操作的控制点主动向UPnP设备申请执行上述管理操作所需的权限,进而可以方便用户的操作。
图3为本发明授权方法再一个实施例的流程图,本实施例以终端设备为UPnP设备,无访问权限的控制设备为控制点为例进行说明。
如图3所示,该授权方法可以包括:
步骤301,控制点对UPnP设备执行管理操作。
步骤302,UPnP设备对控制点进行权限认证,发现该控制点无权执行上述管理操作,向控制点返回无权执行该管理操作的响应,例如:error code=606。
本实施例中,步骤301与步骤302是可选步骤。
步骤303,控制点向UPnP设备发送权限申请请求。本实施例中,该权限申请请求携带CPID、该控制点对该UPnP设备待执行管理操作和该待执行管理操作对应的参数的名称(Name)和认证码(Authcode)。具体地,该权限申请请求可以如下所示:
新增管理操作命令:ApplyRole();
参数:CPID:控制点的标识;
Name:该控制点对该UPnP设备待执行管理操作和该待执行管理操作对应的参数的名称;
AuthCode:认证码,可以为控制点的PIN与CPID的第一哈希(hash)值或该控制点的证书,用于对该控制点进行合法性认证。
步骤304,UPnP设备根据上述权限申请请求携带的该控制点对该UPnP设备待执行管理操作和该待执行管理操作对应的参数的名称,确定执行该待执行管理操作所需的权限信息,以及对该待执行管理操作对应的参数进行操作所需的权限信息,然后将上述所需的权限信息加入到待授权列表中。其中,待授权列表为待授权信息的一种实现形式,当然待授权信息还可以其他形式实现,例如数组等,本实施例对此不作限定。
本实施例中,该待授权列表的格式可以为:
步骤305,UPnP设备通知具有管理员权限的控制点为控制点分配权限。
本实施例中,UPnP设备可以向至少一个具有管理员权限的控制点组播待授权通知事件,以通知具有管理员权限的控制点为控制点分配权限;或者,也可以既向至少一个具有管理员权限的控制点中的组播待授权通知事件,又向每个具有管理员权限的控制点单播该待授权通知事件,以通知具有管理员权限的控制点为控制点分配权限。
步骤306,具有管理员权限的控制点启动授权流程,到UPnP设备上查询待授权列表。
步骤307,具有管理员权限的控制点验证待授权列表中的控制点的合法性。如果具有管理员权限的控制点确定待授权列表中的控制点合法,则执行步骤308;如果具有管理员权限的控制点确定待授权列表中的控制点不合法,则结束本次流程。
具体地,具有管理员权限的控制点可以接收待授权列表中的控制点的PIN,然后计算PIN与CPID的第二哈希值,与步骤206待授权列表中的第一哈希值进行比较,如果相同,则确定待授权列表中的控制点合法;如果第二哈希值与第一哈希值不同,则确定待授权列表中的控制点不合法;其中,待授权列表中的控制点的PIN是由使用具有管理员权限的控制点的用户预先获得,并在具有管理员权限的控制点提示后输入的;举例来说,具有管理员权限的控制点查询到待授权列表之后,可以向使用具有管理员权限的控制点的用户提示输入待授权列表中的控制点的PIN,之后,具有管理员权限的控制点可以接收使用具有管理员权限的控制点的用户输入的PIN,然后计算接收到的PIN与CPID的第二哈希值;
或者,
具有管理员权限的控制点可以使用根证书对待授权列表中的控制点的证书进行认证,如果认证通过,则确定待授权列表中的控制点合法;如果认证未通过,则确定待授权列表中的控制点不合法。
步骤308,具有管理员权限的控制点向UPnP设备发送权限分配命令。具体地,该权限分配命令可以为AddRolesForIdentity()命令。
步骤309,UPnP设备接收具有管理员权限的控制点发送的权限分配命令,为控制点分配权限。
步骤310,UPnP设备通过事件通知控制点已授权。
具体地,可以增加状态变量控制点标识列表(CPIDlist),用于记录权限发生变化的控制点的标识。
步骤311,控制点对UPnP设备执行管理操作。
上述实施例中,接收到UPnP设备返回的无权执行该管理操作的响应之后,控制点可以直接向UPnP设备申请执行上述管理操作所需的权限;接收到控制点的权限申请请求之后,UPnP设备先确定执行上述管理操作所需的权限,再将所需的权限加入到待授权列表,并通知具有管理员权限的控制点到该UPnP设备上查询待授权列表;在具有管理员权限的控制点确定该待授权列表中的控制点合法,并在该UPnP设备上为待授权列表中的控制点授权之后,该UPnP设备通知上述控制点已授权;从而可以实现无权执行管理操作的控制点主动向UPnP设备申请执行上述管理操作所需的权限,进而可以方便用户的操作。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明终端设备一个实施例的结构示意图,本实施例中的终端设备可以实现本发明图1所示实施例的流程,如图4所示,该终端设备可以包括:
接收模块41,用于接收无访问权限的控制设备的权限申请请求;
通知模块42,用于通知具有管理员权限的控制设备为无访问权限的控制设备分配权限;
分配模块43,用于在接收模块41接收到具有管理员权限的控制设备的权限分配命令之后,为该无访问权限的控制设备分配权限。
本实施例中的终端设备可以为UPnP设备等终端设备,本实施例对终端设备的具体形式不作限定;本实施例中的无访问权限的控制设备可以为无访问权限的控制点,本实施例对无访问权限的控制设备的具体形式也不作限定;本实施例中,具有管理员权限的控制设备可以为具有管理员权限的控制点,本实施例对具有管理员权限的控制设备的具体形式不作限定。
上述实施例中,接收模块41接收到无访问权限的控制设备的权限申请请求之后,通知模块42通知具有管理员权限的控制设备为该无访问权限的控制设备分配权限;然后接收模块41可以接收具有管理员权限的控制设备的权限分配命令,之后由分配模块43为该无访问权限的控制设备分配权限;从而可以实现无访问权限的控制设备主动申请权限,获得对终端设备执行待执行管理操作的授权,进而可以方便用户的操作。
图5为本发明终端设备另一个实施例的结构示意图,本实施例中的终端设备可以实现本发明图1、图2和图3所示实施例的流程。与图4所示的终端设备相比,不同之处在于,图5所示的终端设备还可以包括:发送模块44;
本实施例中,接收模块41还可以在接收无访问权限的控制设备的权限申请请求之前,接收该无访问权限的控制设备的查询请求;该查询请求用于查询对上述终端设备执行待执行管理操作所需的权限信息;还可以接收无访问权限的控制设备发送的至少包含待授权信息的权限申请请求,该待授权信息至少包括无访问权限的控制设备查询到的权限信息;
发送模块44,用于至少根据接收模块41接收的查询请求将无访问权限的控制设备对该终端设备执行上述待执行管理操作所需的权限信息发送给无访问权限的控制设备;
另外,当待执行管理操作包括与数据模型相关的待执行管理操作时,上述查询请求进一步用于查询对该待执行管理操作对应的参数进行操作所需的权限信息。
进一步地,该终端设备还可以包括:
确定模块45,用于至少根据接收模块41接收的权限申请请求包含的无访问权限的控制设备对该终端设备的待执行管理操作的名称,确定无访问权限的控制设备对该终端设备执行上述待执行管理操作所需的权限信息;
生成模块46,用于至少根据确定模块45确定的权限信息生成待授权信息。
进一步地,确定模块45还可以当待执行管理操作包括与数据模型相关的待执行管理操作时,至少根据上述权限申请请求携带的该待执行管理操作对应的参数的名称,确定无访问权限的控制设备对上述待执行管理操作对应的参数进行操作所需的权限信息。
本实施例中,通知模块42可以包括以下至少一种模块:
第一通知子模块421,用于向具有管理员权限的控制设备发送通知消息;该通知消息可以用于通知具有管理员权限的控制设备到该终端设备上查询生成模块46生成的待授权信息,为无访问权限的控制设备分配权限;
第二通知子模块422,用于向具有管理员权限的控制设备发送通知消息,该通知消息至少携带上述生成模块46生成的待授权信息,也就是说,第二通知子模块422可以通过通知消息将待授权信息发送给具有管理员权限的控制设备,以通知具有管理员权限的控制设备为该无访问权限的控制设备分配权限。
进一步地,通知模块42还可以在分配模块43为上述无访问权限的控制设备分配权限之后,通知该无访问权限的控制设备已授权。
上述终端设备可以在接收到无访问权限的控制设备的权限申请请求之后,对该无访问权限的控制设备进行授权,从而可以使无访问权限的控制设备获得对该终端设备进行管理操作所需的权限,进而可以方便用户的操作。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。