鉴权方法、装置、系统和存储介质与流程

文档序号:16198242发布日期:2018-12-08 06:21阅读:182来源:国知局
鉴权方法、装置、系统和存储介质与流程

本申请涉及安全技术领域,特别涉及一种鉴权方法、装置、系统和存储介质。

背景技术

鉴权(英文:authentication)是指验证客户端是否拥有访问某个应用(应用可以为一个程序,用于提供业务功能)的权利。

鉴权系统中通常包括用户中心、多个客户端和多个应用,在客户端访问某个应用时,会将由用户中心提供的令牌(英文:token)发送给该应用,该应用将该令牌发送给用户中心,由用户中心验证该令牌,在该令牌通过验证时,用户中心通知该应用允许该客户端的访问。

上述这种通过用户中心进行集中鉴权的方法在有较多的应用同时需要用户中心来验证令牌时,可能会由于用户中心的处理能力的限制,而使得用户中心对于令牌的验证较为缓慢,进而导致鉴权速度较低。



技术实现要素:

为了解决现有技术中鉴权速度较低的问题,本发明实施例提供了一种鉴权方法、装置、系统和存储介质。所述技术方案如下:

根据本申请的第一方面,提供了一种鉴权方法,所述方法包括:

运行有应用(application)的实体设备可以获取运行有用户中心的实体设备生成的客户端的客户端标识。其中,客户端标识是运行有客户端的实体设备在运行有用户中心的实体设备登录后由运行有用户中心的实体设备分配的标识。该应用可以是运营于终端或服务器等实体设备上的一个程序,该程序用于提供某种业务功能。该运行有应用的实体设备在接收到客户端发送的包括授权凭证的认证信息时,可以通过获取的客户端标识对授权凭证进行权限验证,该授权凭证为运行有用户中心的实体设备发送至运行有客户端的实体设备,用于与客户端标识配合以证明运行有客户端的实体设备的权限的凭证。在授权凭证通过权限验证时,该运行有应用的实体设备可以允许客户端进行访问。

本申请提供的鉴权方法,通过由各个应用在本地通过客户端标识进行鉴权操作,以一种离散鉴权的方式解决了相关技术中鉴权方法灵活性较低的问题。

可选的,运行有应用的实体设备在接收到运行有客户端的实体设备发送的包括授权凭证的认证信息时,通过客户端标识对授权凭证进行权限验证,包括:

运行有应用的实体设备在接收到运行有客户端的实体设备发送的包括授权凭证的认证信息时,可以对授权凭证进行有效性验证,该有效性验证用于验证授权凭证是否为运行有用户中心的实体设备生成。在授权凭证通过有效性验证时,运行有应用的实体设备可以进一步通过所述客户端标识与运行有客户端的实体设备互相进行身份验证。在身份验证通过时,运行有应用的实体设备确定权限验证通过。

本申请提供的鉴权方法,应用通过先对授权凭证进行有效性验证,以验证授权凭证的合法性,再与客户端互相进行身份验证,以保证应用和客户端身份的真实性,使得权限验证的安全性较高。

可选的,授权凭证包括由运行有用户中心的实体设备的私钥生成的数字签名(digitalsignature)。

运行有应用的实体设备在接收到运行有客户端的实体设备发送的包括授权凭证的认证信息时,对授权凭证进行有效性验证,包括:运行有应用的实体设备在接收到运行有客户端的实体设备发送的包括授权凭证的认证信息时,通过运行有用户中心的实体设备的公钥验证数字签名。在验证成功时,表明授权凭证确实为运行有用户中心的实体设备所颁发,且授权凭证未被修改,此时运行有应用的实体设备可以确定授权凭证通过有效性验证。在验证失败时,确定授权凭证未通过有效性验证。

本申请提供的鉴权方法,通过数字签名来验证授权凭证,可以验证出授权凭证是否为用户中心颁发,且能够验证授权凭证是否被修改后,提高了鉴权方法的安全性。

可选的,运行有应用的实体设备从运行有用户中心的实体设备获取客户端的客户端标识之后,该方法还包括:

运行有应用的实体设备根据客户端标识以预设算法生成验证密钥。该预设算法可以由运行有客户端的实体设备和运行有应用的实体设备预先约定。

运行有应用的实体设备在授权凭证通过有效性验证时,与运行有客户端的实体设备互相进行身份验证,包括:

运行有应用的实体设备以询问握手认证协议(challengehandshakeauthenticationprotocol,chap)向运行有客户端的实体设备证明验证密钥与运行有客户端的实体设备中的客户端密钥一致,客户端密钥由运行有用户中心的实体设备根据客户端标识以预设算法生成。之后,运行有应用的实体设备以chap验证客户端密钥与验证密钥是否一致。在客户端密钥与验证密钥一致时,确定运行有客户端的实体设备通过身份验证。在客户端密钥与验证密钥不一致时,确定运行有客户端的实体设备未通过身份验证。

chap是一种可以用于验证两端(如运行有应用的实体设备和运行有客户端的实体设备)是否拥有一个共有的密钥的协议,在两端拥有一个共有的密钥时,证明两端的身份真实。此种方法无需传输密钥,安全性较高。

可选的,认证信息中还包括第一随机字符串。该随机字符串可以由运行有客户端的实体设备随机生成。

运行有应用的实体设备以询问握手认证协议chap向运行有客户端的实体设备证明验证密钥与运行有客户端的实体设备中的客户端密钥一致,包括:

运行有应用的实体设备生成第二随机字符串。运行有应用的实体设备以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串和客户端标识生成第一哈希消息认证码(hash-basedmessageauthenticationcode,hmac)。运行有应用的实体设备将第一hmac和第二随机字符串发送至运行有客户端的实体设备,以便于客户端以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和客户端标识生成第二hmac,并在第二hmac与第一hmac一致时确定验证密钥与运行有客户端的实体设备中的客户端密钥一致。

可选的,以chap验证客户端密钥与验证密钥是否一致,包括:

运行有应用的实体设备接收运行有客户端的实体设备以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和目的运行有应用的实体设备的运行有应用的实体设备名生成的第三hmac,目的运行有应用的实体设备名为运行有客户端的实体设备所要访问的运行有应用的实体设备的运行有应用的实体设备名,该运行有客户端的实体设备用于在确定验证密钥与所述客户端密钥一致时,向本运行有应用的实体设备发送第三hmac。运行有应用的实体设备以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串和目的运行有应用的实体设备的运行有应用的实体设备名生成的第四hmac。在第四hmac与第三hmac一致时,运行有应用的实体设备确定客户端密钥与验证密钥一致。在第四hmac与第三hmac不一致时,运行有应用的实体设备确定客户端密钥与验证密钥不一致。

可选的,授权凭证包括记录授权凭证的有效期的有效期信息。

运行有应用的实体设备在授权凭证通过有效性验证时,与运行有客户端的实体设备互相进行身份验证,包括:

运行有应用的实体设备在授权凭证通过有效性验证时,根据有效期信息确定授权凭证是否在有效期内;运行有应用的实体设备在授权凭证在有效期内时,与运行有客户端的实体设备互相进行身份验证。其中有效期可以由颁发授权凭证的运行有用户中心的实体设备来设置,运行有应用的实体设备在确定了授权凭证有效后,首先可以检测授权凭证是否在有效期内,以避免进行无效的身份验证。

可选的,运行有应用的实体设备授权凭证包括运行有客户端的实体设备的权限信息,权限信息记录有运行有客户端的实体设备的服务范围。

运行有应用的实体设备在授权凭证通过权限验证时,允许运行有客户端的实体设备进行访问,包括:

运行有应用的实体设备在授权凭证通过权限验证时,在运行有客户端的实体设备的服务范围内向运行有客户端的实体设备提供服务。运行有应用的实体设备中可以包括由多个服务范围,运行有应用的实体设备可以向运行有客户端的实体设备提供授权凭证中权限信息所记录的服务范围内的服务。

可选的,在授权凭证通过权限验证时,允许运行有客户端的实体设备进行访问之前,方法还包括:

运行有应用的实体设备获取至少一个角色信息,至少一个角色信息中的每个角色信息包括一个角色标识以及该角色标识对应的服务范围。该角色信息可以由运行有用户中心的实体设备获取,或者由管理员直接输入运行有应用的实体设备。

权限信息包括至少一个角色标识,在授权凭证通过权限验证时,在运行有客户端的实体设备的服务范围内向运行有客户端的实体设备提供服务,包括:

运行有应用的实体设备在授权凭证通过权限验证时,确定权限信息中的角色标识对应的目的服务范围。运行有应用的实体设备在目的服务范围内向运行有客户端的实体设备提供服务。运行有应用的实体设备可以根据获取的角色信息所对应的服务范围来向运行有客户端的实体设备提供服务,以方便运行有应用的实体设备对于拥有不同服务范围的运行有客户端的实体设备的权限进行管理。

可选的,该方法还包括:

运行有应用的实体设备对至少一个角色信息进行调整处理,调整处理包括增加角色信息、删除角色信息和修改角色信息中的至少一种。即,运行有应用的实体设备可以在本地对角色信息进行调整,以管理运行有客户端的实体设备的权限,该调整可以由管理员或运行有用户中心的实体设备进行。

根据本申请的第二方面,提供了一种鉴权方法,该方法包括:

运行有客户端的实体设备获取运行有用户中心的实体设备生成的包括授权凭证的授权信息,授权凭证包括客户端标识;运行有客户端的实体设备在要访问目的运行有应用的实体设备时,向目的运行有应用的实体设备发送包括授权凭证的认证信息;运行有客户端的实体设备配合目的运行有应用的实体设备对授权凭证进行权限验证;运行有客户端的实体设备在授权凭证通过权限验证时,访问目的运行有应用的实体设备,授权凭证为运行有用户中心的实体设备发送至运行有客户端的实体设备,用于与客户端标识配合以证明运行有客户端的实体设备的权限的凭证。

可选的,运行有客户端的实体设备配合目的运行有应用的实体设备对授权凭证进行的权限验证,包括:

运行有客户端的实体设备在授权凭证通过运行有应用的实体设备对授权凭证进行的有效性验证时,与运行有客户端的实体设备互相进行身份验证;运行有客户端的实体设备在身份验证通过时,确定授权凭证通过权限验证。

可选的,授权信息中还包括客户端密钥,客户端密钥由运行有用户中心的实体设备根据客户端标识以预设算法生成,运行有客户端的实体设备在授权凭证通过有效性验证时,与运行有客户端的实体设备互相进行身份验证,包括:

运行有客户端的实体设备以chap验证客户端密钥与验证密钥是否一致,验证密钥由目的运行有应用的实体设备以预设算法根据客户端标识生成;运行有客户端的实体设备在客户端密钥与验证密钥一致时,确定运行有客户端的实体设备通过身份验证;运行有客户端的实体设备以chap向运行有应用的实体设备证明客户端密钥与验证密钥可选的,认证信息中还包括第一随机字符串,

运行有客户端的实体设备以chap验证客户端密钥与验证密钥是否一致,包括:

运行有客户端的实体设备接收目的运行有应用的实体设备以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串客户端标识生成的第一hmac和第二随机字符串;运行有客户端的实体设备以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和客户端标识生成第二hmac;运行有客户端的实体设备在第一hmac和第二hmac一致时,确定客户端密钥与验证密钥一致;运行有客户端的实体设备在第一hmac和第二hmac不一致时,确定客户端密钥与验证密钥不一致。

可选的,运行有客户端的实体设备以chap向运行有应用的实体设备证明客户端密钥与验证密钥一致,包括:

运行有客户端的实体设备在确定客户端密钥与验证密钥一致时,以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和目的运行有应用的实体设备的运行有应用的实体设备名生成第三hmac;运行有客户端的实体设备将第三hmac发送至目的运行有应用的实体设备,以便于目的运行有应用的实体设备以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串和目的运行有应用的实体设备的运行有应用的实体设备名生成第四hmac,并在第四hmac和第三hmac一致时,确定客户端密钥与验证密钥一致。

根据本申请的第三方面,提供了一种鉴权方法,其特征在于,方法包括:

运行有用户中心的实体设备在有运行有客户端的实体设备登录时,生成客户端的客户端标识;运行有用户中心的实体设备以预设算法根据客户端标识生成客户端密钥;运行有用户中心的实体设备获取客户端的权限信息,权限信息记录有运行有客户端的实体设备能够访问的至少一个运行有应用的实体设备;运行有用户中心的实体设备根据客户端标识和权限信息生成客户端的授权凭证;运行有用户中心的实体设备将包括授权凭证的授权信息发送至运行有客户端的实体设备。运行有用户中心的实体设备向至少一个运行有应用的实体设备发送客户端标识,以便于至少一个运行有应用的实体设备以客户端标识对授权凭证进行权限验证。

本申请提供的鉴权方法,通过向客户端颁发授权凭证和密钥,向运行有应用的实体设备发送用于对授权凭证进行权限验证的客户端标识,使运行有应用的实体设备能够自行对客户端进行鉴权,以一种离散鉴权的方式解决了相关技术中鉴权方法灵活性较低的问题。

可选的,运行有用户中心的实体设备将授权凭证发送至运行有客户端的实体设备之前,方法还包括:

运行有用户中心的实体设备本端的私钥在授权凭证上设置数字签名;该本端可以是指本用户中心或运行有本用户中心的实体设备。

运行有用户中心的实体设备将授权凭证发送至运行有客户端的实体设备,包括:

运行有用户中心的实体设备将设置有数字签名的授权凭证发送至运行有客户端的实体设备。

根据本申请的第四方面,提供了一种鉴权装置,该鉴权装置包括至少一个模块,该至少一个模块用于实现上述第一方面提供的鉴权方法。

根据本申请的第五方面,提供了一种鉴权装置,该鉴权装置包括至少一个模块,该至少一个模块用于实现上述第二方面提供的鉴权方法。

根据本申请的第六方面,提供了一种鉴权装置,该鉴权装置包括至少一个模块,该至少一个模块用于实现上述第三方面提供的鉴权方法。

根据本申请的第七方面,提供了一种鉴权装置,该鉴权装置包括:处理器、网络接口、存储器以及总线,存储器与网络接口分别通过总线与处理器相连;处理器被配置为执行存储器中存储的指令;处理器通过执行指令来实现上述第一方面所提供的鉴权方法。

根据本申请的第八方面,提供了一种鉴权装置,该鉴权装置包括:处理器、网络接口、存储器以及总线,存储器与网络接口分别通过总线与处理器相连;处理器被配置为执行存储器中存储的指令;处理器通过执行指令来实现上述第二方面所提供的鉴权方法。

根据本申请的第九方面,提供了一种鉴权装置,该鉴权装置包括:处理器、网络接口、存储器以及总线,存储器与网络接口分别通过总线与处理器相连;处理器被配置为执行存储器中存储的指令;处理器通过执行指令来实现上述第三方面所提供的鉴权方法。

根据本申请的第十方面,提供一种鉴权系统,该鉴权系统包括应用、客户端和用户中心,

该应用包括上述第四方面提供的鉴权装置或第七方面提供的鉴权装置;

该客户端包括上述第五方面提供的鉴权装置或第八方面提供的鉴权装置;

该用户中心包括第六方面提供的鉴权装置货第九方面提供的鉴权装置。

根据本申请的第十一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述第一方面提供的鉴权方法。

根据本申请的第十二方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述第二方面提供的鉴权方法。

根据本申请的第十三方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述第三方面提供的鉴权方法。

本发明实施例提供的技术方案带来的有益效果是:

由各个应用在本地通过客户端标识对用户中心颁发给客户端的授权凭证进行鉴权操作,而无需由用户中心进行集中鉴权。相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

附图说明

图1是本申请各个实施例所涉及的实施环境的示意图;

图2是本发明示例性实施例涉及的一种鉴权装置的结构示意图;

图3-1是本发明实施例提供的一种鉴权方法的流程图;

图3-2是图3-1所示实施例中一种授权凭证的结构示意图;

图4-1是本发明实施例提供的一种鉴权方法的流程图;

图4-2是图4-1所示实施例中一种进行有效性验证的流程图;

图4-3是图4-1所示实施例中一种验证客户端密钥与验证密钥是否一致的流程图;

图4-4是图4-1所示实施例中另一种验证客户端密钥与验证密钥是否一致的流程图;

图5-1是本发明实施例提供的另一种鉴权装置的结构框图;

图5-2是图5-1所示鉴权装置中权限验证模块的结构框图;

图5-3是本发明实施例提供的另一种鉴权装置的结构框图;

图5-4是图5-1所示鉴权装置中应用身份验证子模块的结构框图;

图5-5是图5-1所示鉴权装置中访问通过模块的结构框图;

图5-6是本发明实施例提供的另一种鉴权装置的结构框图;

图5-7是本发明实施例提供的另一种鉴权装置的结构框图;

图6-1是本发明实施例提供的一种鉴权装置的结构框图;

图6-2是图6-1所示实施例中信息发送模块的结构框图;

图6-3是图6-1所示实施例中身份验证子模块的结构框图;

图7-1是本发明实施例提供的一种鉴权装置的结构框图;

图7-2是本发明实施例提供的另一种鉴权装置的结构框图;

图8是本发明实施例提供的一种鉴权系统的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

请参考图1,其示出了本申请各个实施例所涉及的实施环境的示意图,该实施环境可以包括:客户端01、应用02和用户中心03。客户端01可以分别和应用02以及用户中心03建立有连接,应用02可以和用户中心03建立有连接。客户端01和应用03均可以有至少一个,而用户中心03可以有一个。其中,客户端01、应用02和用户中心03均可以为运行于终端(终端可以包括手机、平板电脑、计算机、便携式电脑、数码相机或智能穿戴设备等)或服务器等实体设备中的程序。多个客户端01可以可以运行于多个实体设备中,多个应用02可以运行于一个实体设备中,也可以运行于多个实体设备中,多个应用02和用户中心03还可以运行于一个实体设备中。

本实施环境中,客户端01为用户用于访问应用02的程序,而应用02为用于向客户端01提供各种功能的程序,用户中心03为用于向客户端01授权的程序。示例性的,客户端01可以为运行于用户的移动终端中的程序,而应用02为运行于服务器中用于提供视频观看服务的程序,用户中心03为运行于服务器(用户中心可以与应用运行与同一个服务器,也可以和应用运行与不同的服务器)中用于向客户端01授权的程序,用户中心03可以向客户端01授予普通权限或贵宾(vip)权限,而应用02可以根据客户端具有的权限向客户端提供不同的服务,如向具有普通权限的客户端提供带有广告的视频播放服务,向具有vip权限的客户端提供不带有广告的视频播放服务。

请参考图2,其示出了本发明示例性实施例涉及的一种鉴权装置的结构示意图。该鉴权装置10可以用于运行上述客户端01、应用02或用户中心03,该鉴权装置10包括:处理器12和网络接口14。

处理器12包括一个或者一个以上处理核心。处理器12通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。

网络接口14可以为多个,该网络接口14用于与其它存储设备或者网络设备进行通信。

可选的,鉴权装置10还包括存储器16、总线18等部件。其中,存储器16与网络接口14分别通过总线18与处理器12相连。

存储器16可用于存储软件程序以及模块。具体的,存储器16可存储操作系统162、至少一个功能所需的程序164。操作系统162可以是实时操作系统(realtimeexecutive,rtx)、林纳斯操作系统(linux)、尤尼斯操作系统(unix)或视窗操作系统(windows)。鉴权装置10在运行程序164时,可以执行下方各个实施例提供的鉴权方法。

本发明实施例可以包括凭证颁发和鉴权两个部分,现分别对这两个部分进行说明。

对于凭证颁发部分:

请参考图3-1,其为本发明实施例提供的一种鉴权方法的流程图,该鉴权方法可以包括如下几个步骤:

步骤301、终端在第一服务器登录。

运行有客户端的终端可以通过用户名加密码的方式登录运行有用户中心的第一服务器。示例性的,用户在想要通过移动终端中的视频播放客户端来观看视频时,首先可以操作移动终端的视频播放客户端来登录视频播放平台(该视频播放平台可以包括运行有用户中心的第一服务器和运行有多个应用的第二服务器)的运行有用户中心的第一服务器,并在该第一服务器中登录。

客户端的用户名和密码可以在本步骤之前通过在用户中心注册来获取,注册的方式可以参考相关技术。

本发明实施例中的终端可以为运行有客户端的终端,第一服务器可以为运行有用户中心的服务器,该客户端可以为图1中的客户端01,该用户中心可以为图1中的用户中心03。

本发明实施例以客户端运行于终端中,用户中心和应用运行于服务器中进行说明,但客户端还可以运行于服务器等其它实体设备中,用户中心或应用也可以运行于终端等其它实体设备中,本发明实施例不作出限制。示例性的,在本发明实施例中的客户端运行于其他实体设备中时,可以将本发明实施例中的终端替换为该其他实体设备。

步骤302、第一服务器生成客户端的客户端标识。

用户中心可以为每个登录的客户端生成一个用于作为客户端的身份标识的客户端标识。用户中心为每个客户端生成的客户端标识均不相同。用户中心可以通过用户名或客户端登陆后提供的其他信息来区分客户端。

步骤303、第一服务器获取客户端的权限信息。

该权限信息可以由用户中心的管理员直接输入用户中心,或者用户中心直接从本地获取与客户端对应的权限信息。该权限信息中可以记录有客户端能够访问的至少一个应用。

第一服务器获取客户端的权限信息的过程即为向客户端授权的过程。

步骤304、第一服务器向至少一个第二服务器发送客户端标识。

第一服务器可以向客户端能够访问的至少一个运行有应用的第二服务器发送该客户端的客户端标识。

第一服务器和第二服务器可以是同一个服务器,也可以是不同的服务器。

至少一个运行有应用的第二服务器中,每个第二服务器可以运行有至少一个应用。

示例性的,视频播放平台的用户中心可以向客户端能够访问的至少一个应用发送客户端标识。

步骤305、至少一个第二服务器以预设算法根据客户端标识生成验证密钥。

该预设算法可以预先由第一服务器告知每个应用,或者预设算法可以在应用形成时存储于应用本地。该至少一个应用在生成验证密钥后,可以将验证密钥与客户端标识一一对应并存储在本地。关于该生成验证密钥的预设算法可以参考相关技术,在此不再赘述。

步骤306、第一服务器以预设算法根据客户端标识生成客户端密钥。

本步骤可以和步骤305同时执行,或者在步骤305之前、步骤302之后执行,或者在步骤305之后、步骤309之前执行,本发明实施例不作出限制。

步骤305和步骤306结束后,至少一个应用和客户端就拥有了以同样算法根据客户端标识生成的密钥,即至少一个应用和客户端共有了一个密钥,至少一个应用和客户端可以通过该共有的密钥来互相进行身份验证。

步骤307、第一服务器根据客户端标识和权限信息生成客户端的授权凭证。

用户中心可以将客户端标识和权限信息添加到一个文件(如文本文件等)中,该文件即可作为客户端的授权凭证。该授权凭证中还可以包括有效期,该有效期用于标示本授权凭证的有效期,应用验证授权凭证的时刻不在有效期内时(不在有效期内可以包括未到有效期和超过有效期),授权凭证均无效。有效期的上限可以由用户中心的管理员来进行设置,示例性的,授权凭证的有效期的上限可以为30天。而客户端可以在该范围内选择有效期。在授权凭证中设置有效期能够提高鉴权时的安全性。

步骤308、第一服务器通过该用户中心的私钥在授权凭证上设置数字签名。

用户中心可以拥有一个私钥(privatekey)以及与该私钥对应的公钥(publickey),私钥保存在用户中心本地,为保密状态,而公钥为公开状态(如保存在公开的服务器中),任何人均可获取。由私钥加密的数据只能够通过公钥解开。

第一服务器可以以一个哈希算法生成授权凭证的报文摘要(messagedigest,md),并通过本地的私钥加密该报文摘要以形成数字签名,再将该数字签名设置在授权凭证中。运行有应用的第二服务器可以通过用户中心的公钥来验证数字签名,以达到验证授权凭证的生成者的身份和授权凭证的完整性的效果。

用户中心设置数字签名的过程还可以参考相关技术,在此不再赘述。

关于公钥和私钥还可以参考相关技术中的非对称加密技术,在此不再赘述。

如图3-2所示,其为设置了数字签名的授权凭证的结构示意图,其中,授权凭证可以包括客户端名(该客户端名可以为用户用于登录用户中心的用户名)、权限信息、授权时间、截止时间(授权时间和截止时间之间即为授权凭证的有效期)、客户端标识和数字签名。其中,权限信息可以包括有客户端在每个应用中的角色标识(如图3-2中的角色1和角色2),每个角色标识可以对应于一个服务范围,角色标识和服务范围的对应关系可以不包括在授权凭证中。应用可以向客户端提供服务范围内的服务。示例性的,权限信息中的角色标识可以为“普通用户”,“普通用户”对应的服务范围可以包括视频播放服务,则应用可以根据该服务范围向客户端提供视频播放服务。

步骤309、第一服务器将授权信息发送至终端,该授权信息中包括授权凭证和客户端密钥。

用户中心可以通过安全信道来向客户端发送授权凭证和客户端密钥,以保证授权凭证和客户端密钥的安全性。示例性的,可以通过基于数据加密标准(dataencryptionstandard,des)的安全信道来向客户端发送授权凭证和客户端密钥。

综上所述,本发明实施例提供的鉴权方法,通过由用户中心给客户端发送授权凭证,并向应用发送用于对授权凭证进行验证的客户端标识,使应用能够对客户端进行鉴权,相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

对于鉴权部分:

请参照图4-1,其为本发明实施例提供的一种鉴权方法的流程图,该鉴权方法可以包括如下几个步骤:

步骤401、终端向第二服务器发送包括授权凭证的认证信息。

终端为运行有客户端的终端,第二服务器为运行有目的应用的服务器,目的应用为客户端想要访问的应用。其中,认证信息可以包括授权凭证和第一随机字符串。第一随机字符串由客户端随机生成。

示例性的,用户操作视频播放客户端成功获得视频播放平台的用户中心颁发的授权凭证和客户端密钥之后,可以向视频播放平台的视频播放应用(目的应用)发送认证信息,以尝试获得视频播放应用所提供的视频播放服务。

本发明实施例以客户端运行于终端中,用户中心和应用运行于服务器中进行说明,但客户端还可以运行于服务器等其它实体设备中,用户中心或应用也可以运行于终端等其它实体设备中,本发明实施例不作出限制。示例性的,在本发明实施例中的客户端运行于其他实体设备中时,可以将本发明实施例中的终端替换为该其他实体设备。

步骤402、第二服务器对授权凭证进行有效性验证。在授权凭证通过有效性验证时,执行步骤403、在授权凭证未通过有效性验证时,执行步骤412。

目的应用在接收到客户端发送的认证信息之后,得知客户端想要访问该目的应用,此时目的应用可以对该授权凭证进行有效性验证。

如图4-2所示,本步骤可以包括下面四个子步骤:

子步骤4021、第二服务器获取用户中心的公钥。

第二服务器可以通过用户中心存储公钥的服务器来获取公钥,示例性的,用户中心的公钥可以保存于认证授权中心(certificateauthority,ca),第二服务器可以从ca获取用户中心的公钥。

子步骤4022、第二服务器通过用户中心的公钥验证数字签名。在验证成功时,执行子步骤4023;在验证失败时,执行子步骤4024。

通过公钥验证数字签名的过程可以为:1、目的应用通过公钥对数字签名进行解锁,得到授权凭证的报文摘要;2、目的应用通过用户中心生成报文摘要时使用的哈希算法(该算法可以由应用和用户中心预先约定)来对生成授权凭证的报文摘要;3、目的应用对比本地生成的报文摘要和解锁得到的报文摘要,若两者一致,则说明数字签名验证成功,若两者不一致,则说明数字签名验证失败。

子步骤4023、在验证成功时,第二服务器确定授权凭证通过有效性验证。

在验证成功时,表明终端发送的授权凭证确实为用户中心所生成,且未被修改,目的应用可以确定授权凭证通过有效性验证。

子步骤4024、在验证失败时,确定授权凭证未通过有效性验证。

在验证失败时,表明客户端发送的授权凭证并非为用户中心所生成或已被修改,可以确定授权凭证未通过有效性验证。

步骤403、第二服务器根据有效期信息确定授权凭证是否在有效期内。在授权凭证在有效期内时,执行步骤404;在授权凭证不在有效期内时,执行步骤412。

授权凭证中可以包括有效期信息(如图3-2中的授权时间和截止时间),而数字签名可以保证该有效期信息未被更改。

第二服务器可以在当前时刻位于有效期中时,确定授权凭证在有效期内,并与终端互相进行身份验证,在当前时刻不位于有效期中时,确定授权凭证不在有效期内。

此外,第二服务器可根据有效期对存储于本地的客户端标识、验证密钥以及授权凭证进行维护,在维护中可以删除超过有效期的客户端标识、验证密钥(客户端标识和验证密钥的有效期取决于其对应的授权凭证)以及授权凭证。

下面的步骤404至步骤406为目的应用和客户端互相进行身份验证的步骤。

步骤404、终端以chap验证客户端密钥与验证密钥是否一致。在客户端密钥与验证密钥一致时,执行步骤405。在客户端密钥与验证密钥不一致时,执行步骤412。

在本发明实施例中,可以首先由运行有客户端的终端来验证运行有目的应用的第二服务器的身份,而验证的方式可以为通过chap来验证目的应用中是否存在和客户端一致的验证密钥。

chap是一种用于进行身份验证的协议,如图4-3所示,以chap验证客户端密钥与验证密钥是否一致可以包括下面6个子步骤:

子步骤4041、第二服务器生成第二随机字符串。

子步骤4042、第二服务器以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串和客户端标识生成第一hmac。

由于第一随机字符串和第二随机字符串在每次进行身份验证时均会重新生成,因而第一hmac不具有重复利用的可能,安全性较高。而在生成第一hmac中加入客户端标识能够进一步提高身份验证的可靠性。

子步骤4043、第二服务器将第一hmac和第二随机字符串发送至终端。

子步骤4044、终端以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和客户端标识生成第二hmac。

该预设的哈希算法可以预先存储于客户端中,或者由用户中心发送至终端中。

子步骤4045、终端在第一hmac和第二hmac一致时,确定客户端密钥与验证密钥一致。

由于除密钥之外,运行有客户端的终端和目的应用计算hmac时的其他参数(第二随机字符串、第一随机字符串和客户端标识)均一致,因而在第一hmac和第二hmac一致时,运行有客户端的终端可以确定客户端密钥与验证密钥一致。

子步骤4046、终端在第一hmac和第二hmac不一致时,确定客户端密钥与验证密钥不一致。

在客户端密钥与验证密钥不一致时,可以执行步骤412,停止鉴权。

步骤405、终端确定第二服务器通过身份验证。执行步骤406。

在客户端密钥与验证密钥一致时,运行有客户端的终端可以确定运行有目的应用的第二服务器通过身份验证。客户端对目的应用进行身份验证能够避免客户端访问到钓鱼网站提供的虚假应用。

本步骤结束后,可以由目的应用对客户端进行身份验证。

步骤406、第二服务器以chap验证客户端密钥与验证密钥是否一致;在客户端密钥与验证密钥一致时,执行步骤407;在客户端密钥与验证密钥不一致时,执行步骤412。

如图4-4所示,本步骤可以包括下面5个子步骤:

子步骤4061、终端以预设哈希算法根据客户端密钥、第二随机字符串、第一随机字符串和目的应用的应用名生成第三hmac。

子步骤4062、终端将第三hmac发送至第二服务器。

子步骤4063、第二服务器以预设哈希算法根据验证密钥、第二随机字符串、第一随机字符串和目的应用的应用名生成的第四hmac。

子步骤4064、第二服务器在第四hmac与第三hmac一致时,确定客户端密钥与验证密钥一致。

子步骤4065、第二服务器在第四hmac与第三hmac不一致时,确定客户端密钥与验证密钥不一致。

在客户端密钥与验证密钥不一致时,可以执行步骤412,停止鉴权。

本步骤可以参考步骤404中,运行有客户端的终端对运行有目的应用的第二服务器进行身份验证的过程。

此外,在本发明实施例中,也可以先由目的应用对客户端进行身份验证,再由客户端对目的应用进行身份验证,本发明实施例不作出限制。

步骤407、第二服务器确定终端通过身份验证。执行步骤408。

在客户端密钥与验证密钥一致时,目的应用可以确定客户端通过身份验证。目的应用对客户端进行身份验证能够避免授权凭证被盗用。

目的应用确定客户端通过身份验证后,表明授权凭证通过目的应用的权限验证。

步骤408、第二服务器获取至少一个角色信息。执行步骤409。

至少一个角色信息中的每个角色信息包括一个角色标识以及该角色标识对应的服务范围,角色信息为用于进行权限管理的一种信息,每个角色信息中的角色标识可以对应一个服务范围,而每个服务范围可以包括有至少一种服务或功能。不同角色标识对应的服务范围可以存在有重叠(即两个服务范围包括相同的服务或功能),也可以不存在有重叠。以角色信息这种方式能够方便清晰对于多种不同的服务范围进行管理。

角色信息可以由用户中心获取,或者直接由管理员输入。这里的管理员(administrator)可以是指鉴权系统中具有最高权限的管理程序,该管理程序可以对及安全系统的各个内容与数据进行管理。

示例性的,以目的应用为视频播放网站的视屏播放应用为例,角色信息中,角色标识和服务范围之间的关系可以如表1所示:

表1

其中,表1中每一行信息为一个角色信息,三种不同的角色信息拥有具有不同的服务范围,这些不同的服务范围可以包括相同的服务,也可以不包括相同的服务。示例性的,临时用户所对应的服务范围包括有信息推送服务。

本步骤可以在执行步骤409之前的任一时刻执行。

步骤409、第二服务器确定权限信息中的角色标识对应的目的服务范围。

运行有客户端的终端发送给运行有目的应用的第二服务器的授权凭证中的权限信息中可以包括至少一个角色标识,目的应用可以确定这至少一个角色标识中每个角色标识对应的目的服务范围。

步骤410、第二服务器在目的服务范围内向终端提供服务。

步骤411、第二服务器对至少一个角色信息进行调整处理。

运行有目的应用的第二服务器在目的服务范围内向终端提供服务之后,可以对本地保存的至少一个角色信息进行调整处理。在对角色信息进行调整处理后,目的应用可以将调整处理后的角色信息上传至用户中心,以便于用户中心在后续的鉴权操作中向授权凭证中写入调整后的角色标识。

调整处理可以包括增加角色信息、删除角色信息和修改角色信息中的至少一种。在修改角色信息时,可以修改角色信息中角色标识和角色标识对应的服务范围。

目的应用可以在管理员的控制下对本地存储的角色信息进行调整处理,或者,目的应用中可以预先设置有接口,用户中心可以通过该接口来对目的应用中的角色信息进行调整。

步骤412、停止鉴权。

在鉴权失败时,可以停止鉴权在目的应用,和/或,客户端处提示鉴权失败。这里的“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

本发明实施例中,多个客户端在同时访问不同的应用时,会由每个客户端访问的应用来进行鉴权操作,用于进行鉴权的信息无需进一步中转至用户中心并由用户中心进行鉴权,鉴权速度快且减少了通信资源的浪费。示例性的,视频播放平台包括有用户中心、提供连续剧播放功能的应用、提供电影播放功能的应用和提供综艺节目播放的应用等10个应用。若这10个应用各有100个客户端在短时间内进行访问,则在相关技术中,这10个应用就会在短时间内将1000个用于鉴权的信息转发至用户中心,并由用户中心对这1000个用于鉴权的信息进行鉴权,并将1000个鉴权结果反馈至该10个应用,这种方式无论是应用与用户中心之间的信道的数据传输压力还是用户中心的鉴权压力都较大,这可能导致鉴权速度在一定时间内极大的降低,严重影响操作客户端的用户的用户体验。而本发明实施例提供的鉴权方法中,提供连续剧播放功能的应用、提供电影播放功能的应用和提供综艺节目播放的应用等10个应用可以分别只对100个客户端进行鉴权,且用于鉴权的信息无需发送至用户中心,客户端也无需用户中心反馈鉴权结果,极大了提高了鉴权速度,提高了操作客户端的用户的用户体验,并减少了通信资源的浪费。

综上所述,本发明实施例提供的鉴权方法,由各个应用在本地通过客户端标识对用户中心颁发给客户端的授权凭证进行鉴权操作,而无需由用户中心进行集中鉴权。相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

如图5-1所示,其为本发明实施例提供的一种鉴权装置的结构框图,该鉴权装置500可以包括:

标识获取模块510,用于实现上述步骤304的功能。

权限验证模块520,用于实现上述步骤401至步骤407的功能。

访问通过模块530,用于实现上述步骤409至步骤410的功能。

可选的,如图5-2所示,权限验证模块520,包括:

有效验证子模块521,用于实现上述步骤402的功能。

应用身份验证子模块522,用于实现上述步骤404至步骤406的功能。

验证通过子模块523,用于实现上述步骤407的功能。

可选的,如图5-3所示,该鉴权装置500还包括:

验证密钥生成模块540,用于实现上述步骤305的功能。

如图5-4所示,应用身份验证子模块522,包括:

应用身份证明单元5221,用于实现上述步骤404的功能。

应用身份验证单元5222,用于实现上述步骤405的功能。

可选的,如图5-5所示,访问通过模块530,包括:

服务提供子模块531,用于实现上述步骤409至步骤410的功能。

可选的,如图5-6所示,鉴权装置500还包括:

角色信息获取模块550,用于实现上述步骤408的功能。

可选的,如图5-7所示,鉴权装置还包括:

角色调整模块560,用于实现上述步骤411的功能。

此外,鉴权装置500还可以包括功能模块,该功能模块用于实现鉴权装置500本身作为应用的功能,示例性的,在鉴权装置为视频播放应用时,该功能模块用于实现视频播放功能。

综上所述,本发明实施例提供的鉴权装置,由各个应用在本地通过客户端标识对用户中心颁发给客户端的授权凭证进行鉴权操作,而无需由用户中心进行集中鉴权。相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

如图6-1所示,其为本发明实施例提供的一种鉴权装置的结构框图,该鉴权装置600可以包括:

信息获取模块610,用于实现上述步骤301和步骤309的功能。

信息发送模块620,用于实现上述步骤401的功能。

验证模块640,用于实现上述步骤402至步骤407的功能。

访问模块630,用于实现上述步骤410的功能。

可选的,如图6-2所示,验证模块640,包括:

身份验证子模块641,用于实现上述步骤404至步骤406的功能。

验证通过子模块642,用于实现上述步骤407的功能。

可选的,如图6-3所示,身份验证子模块641,包括:

客户端身份验证单元6411,用于实现上述步骤404的功能。

身份确认单元6412,用于实现上述步骤405的功能。

客户端身份证明单元6413,用于实现上述步骤406的功能。

综上所述,本发明实施例提供的鉴权装置,由各个应用在本地通过客户端标识对用户中心颁发给客户端的授权凭证进行鉴权操作,而无需由用户中心进行集中鉴权。相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

如图7-1所示,其为本发明实施例提供的一种鉴权装置的结构框图,该鉴权装置700可以包括:

标识生成模块710,用于实现上述步骤302的功能。

密钥生成模块720,用于实现上述步骤306的功能。

授权模块730,用于实现上述步骤303的功能。

凭证生成模块740,用于实现上述步骤307的功能。

凭证发送模块750,用于实现上述步骤309的功能。

标识发送模块760,用于实现上述步骤304的功能。

可选的,如图7-2所示,鉴权装置700还包括:

签名设置模块770,用于实现上述步骤308的功能。

综上所述,本发明实施例提供的鉴权装置,由各个应用在本地通过客户端标识对用户中心颁发给客户端的授权凭证进行鉴权操作,而无需由用户中心进行集中鉴权。相较于相关技术中集中鉴权的方式,以一种离散鉴权的方式提高了鉴权速度。

图8是本发明实施例提供的一种鉴权系统的框图,该鉴权系统800包括:应用810、客户端820和用户中心830,应用810、客户端820和用户中心830两两之间能够建立连接。

应用810包括图5-1、图5-3、图5-6或图5-7提供的鉴权装置。

客户端820包括图6-1提供的鉴权装置。

用户中心830包括图7-1或图7-2提供的鉴权装置。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述实施例提供的鉴权方法。例如,该鉴权方法可以包括:

获取用户中心生成的客户端的客户端标识,所述客户端标识是所述客户端在用户中心登录后由所述用户中心分配的标识;

在接收到客户端发送的包括授权凭证的认证信息时,通过所述客户端标识对所述授权凭证进行权限验证,所述授权凭证为所述用户中心发送至所述客户端,用于与所述客户端标识配合以证明所述客户端的权限的凭证;

在所述授权凭证通过所述权限验证时,允许所述客户端进行访问

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述实施例提供的鉴权方法。例如,该鉴权方法可以包括:

获取用户中心生成的包括授权凭证的授权信息,所述授权凭证包括客户端标识

在要访问目的应用时,向所述目的应用发送包括所述授权凭证的认证信息;

配合所述目的应用对所述授权凭证进行权限验证;

在所述授权凭证通过所述权限验证时,访问所述目的应用。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在鉴权装置上运行时,使得鉴权装置执行上述实施例提供的鉴权方法。例如,该鉴权方法可以包括:

在有客户端登录时,生成所述客户端的客户端标识;

以预设算法根据所述客户端标识生成客户端密钥;

获取所述客户端的权限信息,所述权限信息记录有所述客户端能够访问的至少一个应用;

根据所述客户端标识和所述权限信息生成所述客户端的授权凭证;

将包括所述授权凭证的授权信息发送至所述客户端

向所述至少一个应用发送所述客户端标识,以便于所述至少一个应用以所述客户端标识对所述授权凭证进行权限验证。

需要说明的是:上述实施例提供的鉴权装置在进行鉴权时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的鉴权装置与鉴权方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1