一种鉴权方法及鉴权装置的制作方法

文档序号:7696631阅读:127来源:国知局
专利名称:一种鉴权方法及鉴权装置的制作方法
技术领域
本发明涉及即时通信领域,特别涉及一种鉴权方法及鉴权装置。
背景技术
网络即时通讯工具发展到今天,已经被大多数的网民所接受,并已成为 用户必不可少的软件工具,不但在平时的休闲娱乐中,而且在用户的工作中
得到广泛的^f吏用。同时用户对IM (instant messaging )软件的易用性,稳定 性,安全性等方面提出了较高的要求。
利用IM软件,用户可以实现与各种联系人之间的会话沟通,这些会话 沟通基于一定的关系链或场景,并且要求是安全可信任的。因此需要能根据 实际的安全需要等,为用户在不同的场景下产生的会话设置不同的权限或能 力,如为某些场景下的会话分配语音视频的权限,而为某些场景下的会话分 配普通文本聊天的权限,从而满足用户在不同场景下的多方位需求;同样还 需要能为不同的用户提供不同的操作权限,从而达到为用户提供个性化服务 的目的,如为成为VIP的IM用户分配更多的操作与处理权限。
为了满足以上需求,就需要对IM软件的鉴权机制进行有效的配置和管理。
现有技术中,鉴权的操作处理是由各个应用模块来完成的,这样就导致 很多应用模块都会具有一套相同的鉴权逻辑,造成了程序资源的浪费。如目 前在IM软件中,控制面板模块和好友列表模块都需要判断用户是否具有音 视频聊天的权限,即都需要对用户的音视频权限进行鉴权,这样就需要在控 制面板模块和好友列表模块中均添加音视频的鉴权逻辑。
当需要增加 一 项新的鉴权权限时,还可能需要在多个应用模块中均添加相应的鉴权逻辑,造成代码的维护性差。
如当增加了一个新的游戏时,可能需要在控制面板中判断显示本地IM
用户是否注册了该游戏,同时可能还需要在好友列表中判断显示好友联系人 是否注册了该游戏,这种情况下虽然鉴权的对象不同,但都需要在控制面板 和好友列表中添加鉴权是否注册该游戏的逻辑。

发明内容
本发明实施例提供 一种鉴权方法和鉴权装置,以提高鉴权操作的灵活性 和可扩展性。
本发明实施例提供的鉴权方法,包括
鉴权中心接收来自应用模块的鉴权请求,将鉴权请求路由到对应的鉴权
单元;
所述鉴权单元执行对所述鉴权请求中指示的鉴权操作。
本发明实施例提供的鉴权装置,包括鉴权中心以及至少 一个鉴权单元, 其中,
所述鉴权中心,用于接收来自外部应用模块的鉴权请求,并将鉴权请求 路由到对应的鉴权单元;
所述鉴权单元,用于执行对所述鉴权请求中指示的鉴权操作。 运用本发明实施例提供的鉴权方法和鉴权装置,将原来分散到各个应用 模块中的鉴权操作都抽离到鉴权单元中,每个鉴权单元负责执行至少一个鉴 权操作,以完成对至少一个权限、能力或者身份的鉴权。鉴权中心负责对各 个鉴权单元的管理,将鉴权请求路由到不同的鉴权单元。这样当需要增加对 新的权限、能力或者身份的鉴权管理时,只需要增加相应的鉴权单元,当某 种鉴权操作不再需要时,只需要删除对应的鉴权单元即可。这样的鉴权操作 具有极大的灵活性和可扩展性,提高了开发效率。


图1为本发明第一实施例中的鉴权方法流程图。
图2为本发明第二实施例中的鉴权方法流程图。 图3为本发明第三实施例中的鉴权装置的示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明 作进一步的详细描述。
在本发明实施例中,将原有分散在各个模块中的鉴权操作分别从各个模 块中抽离到鉴权单元中,即每个鉴权单元通过至少一套判断逻辑来完成对至 少一个权限、能力或身份的判断,以实现至少一项鉴权操作。
鉴权中心负责对各个鉴权单元的管理,即鉴权中心并不执行具体的鉴权 操作。鉴权中心在收到某一应用模块的鉴权请求后,根据鉴权请求的类型, 将鉴权请求路由到对应的鉴权单元,并在鉴权单元完成相应的鉴权操作后, 将鉴权结果返回给应用模块。
这样当需要增加对新的权限、能力或者身份的鉴权管理时,只需要增加 相应的鉴权单元,通过上述方式可以有效实现鉴权操作的灵活性和可扩展 性,极大的提高了开发效率。
图1为本发明第一实施例中的鉴权方法流程图。如图l所示,该鉴权方 法具体包括以下步骤
步骤101:鉴权中心接收来自外部应用模块的鉴权请求。
每一个鉴权单元都具有一个全球唯一 GUID,作为该鉴权单元对应的权 限ID。这个GUID可以是鉴权单元自动生成的,也可以是由鉴权中心为其 分配的,也可以是通过其他方式获取的。鉴权中心中登记有与其挂接的每个 鉴权单元接口与权限ID的映射关系表。
当外部应用模块需要鉴权某种权限、能力或者身份时,可以向鉴权中心 发送鉴权请求,其中鉴权请求中至少包括对应的权限ID,即需告知鉴权中心该鉴权请求是针对何种权限的。鉴权请求中还需要包括可被对应鉴权单元 识别的具体鉴权所必须的参数,如对应的联系人的im帐号。
这里外部应用模块向鉴权中心发送鉴权请求的过程可以是需获取到鉴
权中心的接口,调用查询权限能力的接口函数,其中将对应的权限id作为
接口函数的参数。
步骤102:鉴权中心根据鉴权请求中的权限id,查询其上保存的鉴权单 元接口与权限id的映射关系表,将该鉴权请求路由到与该权限id对应的鉴 权单元中。
步骤103:鉴权单元根据鉴权请求中具体鉴权所必须的参数,完成鉴权, 并将鉴权结果返回给鉴权中心。
步骤104:鉴权中心将接收到的鉴权结果返回给外部应用模块。
其中,在实际实现中,鉴权中心可以通过调用统一的鉴冲又单元接口函邀: 查询对应的权限能力,从而完成步骤102到步骤104。
外部应用模块接收到鉴权中心返回的鉴权结果后,可以根据该鉴权结 果,进行相应的显示或者进行操作能力的调整,如根据相应的鉴权结果,会 话窗口管理模块可以在会话窗口上现实具有的权限,而将不具有的权限设置 为不显示,或者虽然显示不具有的权限,但将相应的操作按钮设置为不可用 等等。
在实际应用中,根据业务的需要,可能需要增加对一种身份、权限或能 力的鉴权操作,此时可以生成一个对应的鉴权单元,以实现对该新增鉴权操 作的逻辑判断,然后将该鉴权单元挂接到鉴权中心。
图2为本发明第二实施例中的鉴权方法流程图。如图2所示,该鉴权方 法具体包括以下步骤
步骤201:鉴权单元初始化,完成鉴权单元与鉴权中心的挂接。
鉴权单元初始化时加载其所对应的权限,并通过向鉴权中心进行自注册 来完成与鉴权中心的挂接。
鉴权单元可以通过用鉴权中心的自注册接口函数完成鉴权单元的挂接,这样鉴权中心中登记鉴权单元接口与权限id的映射关系表就会增加该鉴权 单元接口与其权限id的映射关系。
这里值得注意的是,并不是每次用户登录im软件后,都会执行鉴权单 元的初始化和自动桂接动作,只要之前在该im软件所在的客户终端上完成 过鉴权单元的挂接动作,并后续也未执行鉴权单元的注销操作,那么就可以 跳过该步骤,直接执行步骤202。
步骤202:鉴权中心接收来自外部应用模块的鉴权请求。
当外部应用模块需要鉴权某种权限、能力或者身份时,可以向鉴权中心 发送鉴权请求,其中鉴权请求中至少包括对应的权限id,即需告知鉴权中 心该鉴权请求是针对何种权限的。鉴权请求中还需要包括可被对应鉴权单元 识别的具体鉴权所必须的参数,如对应的联系人的im帐号。
这里外部应用模块向鉴权中心发送鉴权请求的过程可以是需获取到鉴 权中心的接口 ,调用查询权限能力的接口函数,其中将对应的权限id作为 接口函数的参数。
步骤203:鉴权中心根据鉴权请求中的权限id,查询其上保存的鉴权单 元接口与权限id的映射关系表,将该鉴权请求路由到与该权限id对应的鉴 权单元中。
步骤204:鉴权单元根据鉴权请求中具体鉴权所必须的参数,完成鉴权, 并将鉴权结果返回给鉴权中心。
步骤205:鉴权中心将接收到的鉴权结果返回给外部应用模块。
其中,在实际实现中,鉴权中心可以通过调用统一的鉴权单元接口函数 查询对应的权限能力,从而完成步骤203到步骤205。
外部应用模块接收到鉴权中心返回的鉴权结果后,可以根据该鉴权结 果,进行相应的显示或者进行操作能力的调整。很显然,这个步骤为可选步 骤。
在实际应用中,根据业务需求或者在不同的模式场景下,还可能需要删 除某个鉴权单元,此时就需要从鉴权中心中注销该鉴权单元。
9注销的过程可以是鉴权单元向鉴权中心发送注销请求,其中注销请求中 至少包括对应的权限ID,即告知鉴权中心需要删除的是何种鉴权请求。鉴 权中心根据该注销请求,从建立的映射关系表中删除对应的权限ID映射表。
鉴权单元向鉴权中心发送注销请求的过程可以是鉴权单元调用鉴权中
心的注销接口函数,其中将需要注销的权限ID作为接口函数的参数。
另外在本发明实施例的鉴权方法中,每个鉴权单元具有唯一的GUID, 作为权限ID,在实际中,某些鉴权单元可能可以同时处理两个以上的权限, 如读权限和写权限,那么此时可以将这两个以上的鉴权作为一个权限,为其 分配一个GUID,作为4又限ID,如为读权限和写4又限分别分配一个外又限ID。 也可以是为该鉴权单元分配两个以上的GUID,每个GUID作为 一个权限ID, 这样在鉴权中心中建立的映射关系表中, 一个鉴权单元接口可以对应两个权 限ID。
在本发明实施例的鉴权方法中,鉴权中心可以是由IM软件中的组件管 理模块根据相关的启动配置文件启动,此时用户处于登录状态。这里用户登 录IM客户端的过程可以是用户在IM客户端的登录面板中输入账号以及 密码,通过与IM服务器的协议通道发送验证账号与密码有效性的协议命令, 在IM服务器验证帐号和密码有效后,用户既可成功登录IM客户端。
图3为本发明第三实施例中的鉴权装置的示意图。图3所示,该鉴权装 置包括鉴权中心300以及至少一个鉴权单元400。
.鉴权中心300用于接收来自外部应用模块的鉴权请求,并将鉴权请求路 由到对应的鉴权单元400中,并接收来自鉴权单元300的鉴权结果,并将鉴 权结果返回给外部应用模块。鉴权单元400用于执行对至少一个鉴权操作, 并通过鉴权中心300返回鉴权结果。
其中,鉴权中心300包括第一收发子单元301、路由子单元302、存储 子单元303、第二收发子单元304。鉴权单元400包括第三收发子单元401 以及鉴权执行子单元402。
其中,第一收发子单元301,用于鉴权中心300与外部应用模块之间的信息交互,具体为接收鉴权请求,并将鉴权请求发送到路由子单元302,以 及从第二收发子单元304中接收鉴权结果,将其返回给外部应用模块。
路由子单元302,用于接收来自第一收发子单元301的鉴权请求,并查 询存储子单元303中存储的鉴权单元接口与权限ID的映射关系表,获取与 鉴权请求对应的鉴权单元400;并将该鉴权请求通过第二收发子单元304路 由到鉴权单元400。
存储子单元303,用于存储其挂接在该鉴权中心300上的鉴权单元接口 与权限ID的映射关系表。
第二收发子单元304,用于鉴权中心300与鉴权单元400之间的信息交 互,具体为将鉴权请求转发到路由子单元302所查询到的鉴权单元400中, 以及接收来自鉴权单元400的鉴权结果,将其发送到第一收发子单元301。
第三收发子单元401,用于实现鉴;f又中心300与鉴权单元400之间的信 息交互,具体为接收通过鉴权中心300路由来的鉴权请求,并其转发给鉴权 执行子单元402;以及接收来自鉴权执行子单元402的鉴权结果,将其返回 给鉴4又中心300。
鉴权执行子单元402,用于根据一定的判断逻辑执行对一权限、能力或 身份的鉴权操作,并将鉴权结果返回给第三收发子单元401。
利用本发明实施例提供的鉴权方法和鉴权装置,将系统中各个模块的鉴 权操作都抽取到鉴权装置中,各模块之间无需再执行具体的鉴权操作,这样 提高了程序资源的利用率。另外当需要引入一种新的鉴权机制,对某个权限、 能力或者身份进行鉴权管理时,只需相应的增加一个鉴权单元,挂接到鉴权 中心中,这样鉴权中心就其对其进行统一管理。通过这种方式可以有效实现 鉴权操作的灵活性以及可扩展性。
本发明以上实施例的描述均基于IM软件中的鉴权操作,很显然这种将 相同的功能抽象到一个单独的功能模块,并通过一个管理中心来管理这些功 能的方法还可以推广到其他软件的其他操作中,而不限与鉴权操作和IM软 件,如这种方法可以推广到电子邮箱的鉴权操作中。另外,本发明实施例还提供了一种计算机软件,以实现鉴权操作。其中 计算机软件中包括计算机程序代码,当这些程序代码运行于计算机时,可以 执行本发明鉴权方法实施例中的 一个或多个步骤,以及鉴权装置实施例中一 个或多个部件以及功能。例如,当某一段计算机程序代码运行于计算机中时, 可以实现某一个鉴权单元或鉴权中心的功能。
计算机软件可以存储在计算机可读介质中,如只读存储器ROM、 随机
存取存储器RAM、或闪存等。可以理解的是,这些程序代码可以经由适当 的数据网络加载到计算机中,并且这些加载到计算机中的程序代码可以替换 或更新计算机上已有的程序代码。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1、一种鉴权方法,其特征在于,包括鉴权中心接收来自应用模块的鉴权请求,将鉴权请求路由到对应的鉴权单元;所述鉴权单元执行对所述鉴权请求中指示的鉴权操作。
2、 如权利要求l所述的方法,其特征在于,进一步包括 所述鉴权单元将鉴权结果返回给所述鉴权中心;所述鉴权中心接收来自所述鉴权单元的鉴权结果,并将鉴权结果返回给 所述应用模块。
3、 如权利要求1或2所述的方法,其特征在于,所述鉴权单元具有至 少一个标识号,用于分别标识所述鉴权单元可处理的权限ID;所述鉴权中心中存储有鉴权单元接口与权限ID的映射关系; 所述鉴权请求包含权限ID以及具体鉴权所必须的参数; 所述鉴权中心根据鉴权请求中包含的权限ID,以及其上存储的鉴权单元接口与权限ID的映射关系,查找与所述鉴权请求对应的鉴权单元;将所述鉴权请求路由到所述鉴权单元;所述鉴权单元根据所述鉴权请求中包含的所述具体鉴权必须的参数,执行所述鉴权操作。
4、 如权利要求3所述的方法,其特征在于,在所述鉴权中心将所述鉴 权请求路由到所述鉴权单元之前进一步包括所述鉴权单元挂接到所述鉴权中心中。
5、 如权利要求4所述的方法,其特征在于,在所述鉴权单元挂接到所 述鉴权中心后,所述鉴权中心在其存储的映射关系表中添加所述鉴权单元接 口与权限ID的映射关系。
6、 如权利要求3所述的方法,其特征在于,进一步包括 所述鉴权单元向所述鉴权中心发送注销请求,其中所述注销请求包含其对应的4又限ID;所述鉴权中心根据所述注销请求,从建立的映射关系表中删除所述鉴权 单元与权限ID的映射关系。
7、 一种鉴权装置,其特征在于,包括鉴权中心以及至少一个鉴权单元, 其中,所述鉴权中心,用于接收来自外部应用模块的鉴权请求,并将所述鉴权请 求路由到对应的鉴权单元;所述鉴权单元,用于执行对所述鉴权请求中指示的鉴权操作。
8、 如权利要求7所述的装置,其特征在于,所述鉴权中心包括 第一子单元,用于接收来自外部应用模块的鉴权请求,并将所述鉴权请求发送到第二子单元;所述第二子单元,用于接收来自所述第一子单元的鉴权请求,并查询第 三子单元中存储的鉴权单元接口与权限ID的映射关系表,获取与鉴权请求 对应的鉴权单元;并将该鉴权请求通过第四子单元路由到所述鉴权单元;所述第三子单元,用于存储其挂接在所述鉴权中心上的鉴权单元接口与 权限ID的映射关系表;所述第四子单元,用于将所述鉴权请求转发到所述第二子单元查询到的 鉴权单元中。
9、 如权利要求7或8所述的装置,其特征在于,所述鉴权单元包括 第五子单元,用于接收来自.所述鉴权中心的鉴权请求,将其转发给第六子单元;所述第六子单元,用于根据 一 定的判断逻辑执行对所述鉴权请求中指示 的鉴权操作。
10、如权利要求9所述的装置,其特征在于,所述第六子单元,进一步 用将鉴权结果返回给所述第五子单元;所述第五子单元,进一步用于接收来自所述第六子单元的鉴权结果,将 其返回给所述鉴权中心。
11、如权利要求10所述的装置,其特征在于,所述第四子单元进一步 用于接收来自所述鉴权单元的鉴权结果,将所述鉴权结果发送到所述第一子单元;所述第一子单元,进一步用于从所述第二子单元接收鉴权结果,将其返 回给所述外部应用才莫块。
全文摘要
本发明实施例公开了一种鉴权方法及鉴权装置,其中鉴权方法包括鉴权中心接收来自应用模块的鉴权请求,将鉴权请求路由到对应的鉴权单元;所述鉴权单元执行对所述鉴权请求中指示的鉴权操作。利用本发明实施例提供的鉴权方法及鉴权装置,可以实现鉴权操作的灵活性和可扩展性,极大的提高了开发效率。
文档编号H04L12/58GK101296196SQ200810124820
公开日2008年10月29日 申请日期2008年6月13日 优先权日2008年6月13日
发明者于长青, 刘晓聪, 斌 李, 李训耕 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1