应用程序对接口的访问方法、授权请求方法及装置与流程

文档序号:11654714阅读:489来源:国知局
应用程序对接口的访问方法、授权请求方法及装置与流程

本申请涉及接口访问方法,具体涉及一种应用程序对接口的访问方法及装置。本申请同时涉及一种应用程序的授权请求方法及装置,一种应用程序的授权方法及装置,以及一种应用程序的权限获取方法及装置。



背景技术:

为了促进应用程序之间的交互,应用程序可以将一些特定操作,例如:对硬件资源的操作、对内部数据的操作、对组件的操作等,封装成接口的形式,供其他应用程序访问。在促进应用程序之间交互的基础上,为了提供安全性保障,系统平台通常采用权限机制对接口的访问进行必要的控制。

以android系统为例,一方面,其自带一些用于对特定接口执行访问操作的权限,同时也允许应用程序的作者(即开发者)在androidmanifest.xml文件用<permission>元素来声明权限,用于限制对其内部接口的访问操作;另一方面,对于需要访问受权限保护的接口的应用程序,则可以在androidmanifest.xml文件中申明所需获取的权限,并分别用<use-permission>元素标识。

当应用程序访问受权限保护的接口时,系统或者提供接口的应用程序通常根据用户做出的决定(例如在安装应用程序时,被请求权限通常会显示在设备屏幕上待用户确认)确定应用程序是否具有访问相应接口的权限,并在具有时允许应用程序执行相应的接口访问操作。

通过上面的描述可以看出,应用程序对接口的访问控制权通常由设备的持有者(即用户)掌控,而不是由接口的提供者(例如:应用程序作者)掌控,无法体现接口提供者的授权意图,因此在实际应用中存在开发者滥用权限、以及黑客通过获取权限来执行恶意操作的安全隐患;而且由于上述原因,导致应用程序作者不敢轻易开放敏感接口(例如:涉及资金、用户隐私数据等操作的接口,也称私有接口),从而无法促进应用程序之间的有效交互,不利于构建良好的应用程序生态环境。



技术实现要素:

本申请实施例提供一种应用程序对接口的访问方法和装置,以解决现有访问控制权由用户掌控而导致的安全隐患、以及应用程序之间无法构建有效交互关系的问题。本申请实施例还提供一种应用程序的授权请求方法和装置,一种应用程序的授权方法和装置,以及一种应用程序的权限获取方法及装置。

本申请提供一种应用程序对接口的访问方法,包括:

接收第一应用程序对特定私有接口的访问请求;

判断第一应用程序是否由所述特定私有接口的提供侧授权;

若是,允许第一应用程序访问所述特定私有接口。

可选的,所述特定私有接口的提供侧包括:提供所述特定私有接口的系统发布者、或者提供所述特定私有接口的第二应用程序发布者。

可选的,所述判断第一应用程序是否由所述特定私有接口的提供侧授权,包括:

根据第一应用程序的签名文件列表中是否包含所述特定私有接口的提供侧的签名文件,判断第一应用程序是否由所述特定私有接口的提供侧授权。

可选的,所述签名文件列表中的签名文件的内容包括:摘要信息,用签名者的私钥加密所述摘要信息生成的数字签名,以及签名者的公钥证书。

可选的,所述签名文件列表包括:第一应用程序发布者的发布者签名文件,或者,所述发布者签名文件以及不同于所述第一应用程序发布者的私有接口提供侧的签名文件。

可选的,当所述签名文件列表中包含私有接口提供侧的授权签名文件时,生成所述授权签名文件的方式包括:

第一客户端向私有接口提供侧发送授权请求;

第二客户端根据接收到的授权请求,利用数字签名技术,采用私有接口提供侧的私钥对授权请求中携带的待签名文件执行签名操作,生成私有接口提供侧的授权签名文件并返回给第一客户端;

第一客户端接收所述授权签名文件,并将其添加到第一应用程序的签名文件列表中。

可选的,所述待签名文件包括:第一应用程序签名文件列表中的、最近一 次生成的签名文件。

可选的,所述第一应用程序的安装过程包括下述权限获取步骤:

从第一应用程序的签名文件列表中逐一提取公钥证书,并添加到签名集合中;

解析第一应用程序的配置文件,提取其申请的、用于访问系统或者其他应用程序的私有接口的私有权限信息;

针对所述私有权限信息中的每个私有权限,执行下述操作:

从预先生成的私有权限申明信息中提取所述私有权限对应的公钥证书;

在所述签名集合中查找所述公钥证书,若找到,则判定第一应用程序获取所述私有权限;

相应的,所述根据第一应用程序的签名文件列表中是否包含所述特定私有接口的提供侧的签名文件,判断第一应用程序是否由所述特定私有接口的提供侧授权,包括:

判断第一应用程序是否已获取访问所述特定私有接口的私有权限,若是,则判定第一应用程序由所述特定私有接口的提供侧授权,否则未授权。

可选的,所述从第一应用程序的签名文件列表中逐一提取公钥证书,并添加到签名集合中,包括:

针对所述签名文件列表中的每个签名文件,执行以下操作:

通过数字签名验证技术,对所述签名文件进行验证;

从通过验证的签名文件中提取公钥证书、并添加到所述签名集合中。

相应的,本申请还提供一种应用程序对接口的访问装置,包括:

访问请求接收单元,用于接收第一应用程序对特定私有接口的访问请求;

授权判断单元,用于判断第一应用程序是否由所述特定私有接口的提供侧授权;

访问允许单元,用于当所述授权判断单元的输出为是时,允许第一应用程序访问所述特定私有接口。

可选的,所述授权判断单元,具体用于根据第一应用程序的签名文件列表中是否包含所述私有接口的提供侧的签名文件,判断第一应用程序是否由所述私有接口的提供侧授权。

可选的,所述授权判断单元所采用的签名文件列表中的签名文件包括:第一应用程序发布者的发布者签名文件,或者,所述发布者签名文件以及不同于所述第一应用程序发布者的私有接口提供侧的授权签名文件。

可选的,所述授权判断单元所采用的签名文件列表中的授权签名文件是由以下单元生成的:

授权请求发送单元,用于第一客户端向私有接口提供侧发送授权请求;

授权签名文件生成单元,用于第二客户端根据接收到的授权请求,利用数字签名技术,采用私有接口提供侧的私钥对授权请求中携带的待签名文件执行签名操作,生成私有接口提供侧的授权签名文件并返回给第一客户端;

授权签名文件接收单元,用于第一客户端接收所述授权签名文件,并将其添加到第一应用程序的签名文件列表中。

可选的,所述授权请求单元所发送的授权请求中携带的待签名文件包括:第一应用程序签名文件列表中的、最近一次生成的签名文件。

可选的,所述装置还包括:权限获取单元,用于第一应用程序在安装过程中获取用于访问私有接口的私有权限;

所述权限获取单元包括:

签名集合生成子单元,用于从第一应用程序的签名文件列表中逐一提取公钥证书,并添加到签名集合中;

私有权限提取子单元,用于解析第一应用程序的配置文件,提取其申请的、用于访问系统或者其他应用程序的私有接口的私有权限信息;

私有权限获取执行子单元,用于针对所述私有权限信息中的每个私有权限,执行下述操作:从预先生成的私有权限申明信息中提取私有权限对应的公钥证书;在所述签名集合中查找所述公钥证书,若找到,则判定第一应用程序获取所述私有权限;

相应的,所述授权判断单元,具体用于判断第一应用程序是否已获取访问所述特定私有接口的私有权限,若是,则判定第一应用程序由所述特定私有接口的提供侧授权,否则未授权。

可选的,所述签名集合生成子单元,具体用于针对所述签名文件列表中的每个签名文件,通过数字签名验证技术对所述签名文件进行验证,并从通过验证的签名文件中提取公钥证书添加到所述签名集合中。

此外,本申请还提供一种应用程序的授权请求方法,包括:

向私有接口提供侧发送授权请求,请求授予应用程序访问所述私有接口的权限;

接收所述私有接口提供侧返回的授权信息;

并将所述授权信息添加到所述应用程序中。

可选的,所述授权请求中携带所述应用程序的待签名文件;

所述授权信息包括:利用数字签名技术,采用所述私有接口提供侧的私钥对所述待签名文件执行签名操作后生成的授权签名文件;

所述将所述授权信息添加到所述应用程序中,包括:将接收到的授权签名文件添加到所述应用程序的签名文件列表中。

可选的,所述授权请求中携带的待签名文件包括:所述应用程序签名文件列表中的、最近一次生成的签名文件。

相应的,本申请还提供一种应用程序的授权请求装置,包括:

授权请求发送单元,用于向私有接口提供侧发送授权请求,请求授予应用程序访问所述私有接口的权限;

授权信息接收单元,用于接收所述私有接口提供侧返回的授权信息;

授权信息添加单元,用于将所述授权信息添加到所述应用程序中。

此外,本申请还提供一种应用程序的授权方法,包括:

确定待授权应用程序;

生成表征私有接口提供侧允许所述待授权应用程序访问私有接口的授权信息。

可选的,所述生成表征私有接口提供侧允许所述待授权应用程序访问私有接口的授权信息,包括:

利用数字签名技术,采用所述私有接口提供侧的私钥对所述待授权应用程序的待签名文件执行签名操作,生成授权签名文件,所述授权签名文件即为所述授权信息。

可选的,所述确定待授权应用程序,包括:根据接收到的请求授予私有接口访问权限的授权请求,确定所述待授权应用程序;

所述待签名文件包括:所述授权请求中携带的文件;

所述方法还包括:

将生成的授权签名文件返回给所述授权请求的发送方。

可选的,所述确定待授权应用程序,包括:从系统运营的待发布应用程序中确定所述待授权应用程序;

所述待签名文件包括:所述待授权应用程序的相关文件;

所述方法还包括:

将生成的授权签名文件添加到所述应用程序的签名文件列表中。

可选的,所述待签名文件为:所述待授权应用程序的签名文件列表中的、最近一次生成的签名文件。

相应的,本申请还提供一种应用程序的授权装置,包括:

待授权应用程序确定单元,用于确定待授权应用程序;

授权信息生成单元,用于生成表征私有接口提供侧允许所述待授权应用程序访问私有接口的授权信息。

此外,本申请还提供一种应用程序的权限获取方法,包括:

从应用程序的授权信息中逐一提取表征授权者身份的信息,并添加到授权者身份集合中;

解析所述应用程序的配置文件,提取其申请的用于访问私有接口的私有权限信息;

针对所述私有权限信息中的每个私有权限,执行下述操作:

从预先生成的私有权限申明信息中提取所述私有权限对应的身份信息;

在所述授权者身份集合中查找所述身份信息,若找到,则判定所述应用程序获取所述私有权限。

可选的,所述授权信息包括:签名文件列表,所述表征授权者身份的信息包括:公钥证书,所述授权者身份集合包括:签名集合。

可选的,所述签名文件列表包括:所述应用程序发布者的发布者签名文件,或者,所述发布者签名文件以及不同于所述应用程序发布者的私有接口提供侧的授权签名文件。

相应的,本申请还提供一种应用程序的权限获取装置,包括:

身份集合生成单元,用于从应用程序的授权信息集合中逐一提取表征授权 者身份的信息,并添加到授权者身份集合中;

私有权限提取单元,用于解析所述应用程序的配置文件,提取其申请的用于访问私有接口的私有权限信息;

私有权限获取单元,用于判定所述应用程序是否获取所述私有权限信息中的私有权限;

所述私有权限获取单元,包括:

循环控制子单元,用于针对私有权限信息中的每个私有权限,依次触发身份信息提取子单元、以及查找判定子单元工作;

身份信息提取子单元,用于从预先生成的私有权限申明信息中提取对应于当前处理的私有权限的身份信息;

查找判定子单元,用于在所述授权者身份集合中查找所述身份信息提取子单元所提取的身份信息,若找到,则判定所述应用程序获取所述私有权限。

与现有技术相比,本申请具有以下优点:

本申请提供的应用程序对接口的访问方法,接收第一应用程序对特定私有接口的访问请求,判断第一应用程序是否由所述特定私有接口的提供侧授权,并在第一应用程序已被授权的情况下,允许其访问所述特定私有接口。采用上述方法,为应用程序发布者以及系统发布者提供了对私有接口的权限控制能力,能够呈现私有接口提供侧的授权意图,消除滥用权限导致的安全隐患;而且通过私有接口的开放,能够促进应用程序之间、以及应用程序与系统之间的有效交互,有助于构建良好的服务生态环境。此外,采用本申请提供的上述方法,使系统发布者主动参与到应用程序的授权过程成为可能,为系统发布者的运维提供便利。

附图说明

图1是本申请提供的一种应用程序对接口的访问方法的实施例的流程图;

图2是本申请实施例提供的在安装过程中获取私有权限的处理流程图;

图3是本申请提供的一种应用程序对接口的访问装置的实施例的示意图;

图4是本申请提供的一种应用程序的授权请求方法的实施例的流程图;

图5是本申请提供的一种应用程序的授权请求装置的实施例的示意图;

图6是本申请提供的一种应用程序的授权方法的实施例的流程图;

图7是本申请提供的一种应用程序的授权装置的实施例的示意图;

图8是本申请提供的一种应用程序的权限获取方法的实施例的流程图;

图9是本申请提供的一种应用程序的权限获取装置的实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

在本申请中,分别提供了一种应用程序对接口的访问方法及装置,一种应用程序的授权请求方法及装置,一种应用程序的授权方法及装置,以及一种应用程序的权限获取方法及装置,在下面的实施例中逐一进行详细说明。

现有技术中,应用程序对系统或者其他应用程序提供的接口的访问控制权通常由设备的持有者(即用户)掌控,而不是由接口的提供者掌控,无法体现接口提供者的授权意图,因此在实际应用中存在开发者滥用权限、以及黑客通过获取权限来执行恶意操作的安全隐患;而且由于上述原因,导致应用程序作者不敢轻易开放敏感接口,从而无法促进应用程序之间的有效交互,不利于构建良好的应用程序生态环境。

针对上述问题,本申请提供的应用程序对接口的访问方法,其核心在于,在判断应用程序能否访问特定私有接口时,是以所述特定私有接口的提供侧是否已为应用程序授权为判断标准,也即只有当所述特定私有接口的提供侧已对应用程序授权的情况下,才允许应用程序访问所述特定私有接口。从而可以体现私有接口提供侧的授权意图,消除滥用权限导致的安全隐患,而且通过私有接口的开放,能够促进应用程序之间、以及应用程序与系统之间的有效交互,有助于构建良好的服务生态环境。

本申请所述的私有接口是指,需要得到私有接口提供侧的授权之后才能进行访问的接口,通常是一些执行敏感操作的接口,例如:涉及资金、用户隐私 数据等操作的接口。私有接口的提供侧,通常是指提供私有接口的系统发布者或者应用程序发布者,也可以是其他能够提供私有接口的个人或团体。

所述特定私有接口,则是指在实施本申请的方法时所针对的某个被访问的具体的私有接口,所述特定私有接口的提供侧,通常是指提供所述特定私有接口的系统发布者或者应用程序发布者,也可以是其他能够提供所述特定私有接口的个人或团体。

所述特定私有接口可以属于某个系统(由某个系统实现)、也可以属于某个应用程序(由某个应用程序实现),由此可见,本申请的技术方案为系统敏感接口、以及应用程序敏感接口,提供了统一的保护机制,便于应用程序开发人员以及系统运维人员实施。

在发布应用程序之前,对于需要访问私有接口的应用程序,如果所述私有接口是所述应用程序发布者发布的其他应用程序中的接口(即,所述私有接口是由发布者自己提供的),那么该发布者可以为需要访问私有接口的应用程序生成授权信息、并添加到所述应用程序中;如果所述私有接口不是由该发布者自己提供的,那么该发布者可以向提供所述私有接口的私有接口提供侧发送授权请求,请求后者授予所述应用程序相应的访问权限,私有接口提供侧如果同意所述应用程序访问所述私有接口,则生成相应的授权信息(例如,授权信息中可以包括授权者的身份信息、以及所述应用程序的标识等),并将该授权信息返回给所述应用程序的发布者,所述应用程序的发布者则可以将授权信息添加到所述应用程序中,例如添加到其安装包中。在具体应用中,应用程序发布者可以根据私有接口访问需求,请求一个或者一个以上私有接口提供侧为应用程序授权,并将得到的授权信息都添加到应用程序中。

当应用程序在个人电脑或者移动通讯设备等电子设备上被安装使用后,如果提出对某一私有接口的访问请求,被访问方(实现私有接口的应用程序或者系统)或者负责接口访问控制的模块,可以根据所述应用程携带的授权信息,采用预设的验证算法或者与提供验证服务的服务端交互验证的方式,检查所述应用程序是否已得到所述私有接口提供侧的授权,若得到,则允许所述应用程序访问所述私有接口,否则拒绝访问。

优选地,为了避免授权信息被伪造,保证授权信息的真实性,可以采用数字签名技术生成授权信息,即:签名的过程就是授权的过程。采用这种方式, 通过授权过程可以生成签名文件列表,当应用程序访问某一私有接口时,则可以根据该应用程序的签名文件列表中是否包含所述私有接口的提供侧的签名文件,决定是否允许访问。

在具体应用中,为了确定应用程序的唯一性,保障应用程序的来源不被篡改,通常会由应用程序的发布者为应用程序签名生成发布者签名文件(例如:android系统采用的应用签名机制),本技术方案可以在此基础上实施上述优选实施方式,即在传统的发布者签名的基础上,支持多签名机制:在发布应用程序之前,应用程序发布者首先对应用程序签名、生成发布者签名文件(相当于为应用程序进行了授权,使其可以访问同一发布者发布的其他应用程序中的私有接口),此后,应用程序发布者还可以通过发送授权请求的方式请求其他私有接口提供侧为应用程序签名,生成私有接口提供侧的签名文件。也即,应用程序不仅可以拥有发布者的签名,还可以拥有一个或者一个以上不同于应用程序发布者的私有接口提供侧的签名,采用这种多签名机制,不仅便于验证授权信息的真实性,而且易于扩展。

下面以在传统发布者签名的基础上支持多签名机制为例,对发布者签名过程及不同应用程序发布者间的授权过程作进一步说明,为了便于描述,在本例中将需要获得授权的应用程序称为应用程序a,应用程序a为了实现其功能需要访问应用程序b中的私有接口,并且应用程序a和应用程序b的发布者不同。

首先,应用程序a的发布者用其私钥对应用程序a签名,生成发布者签名文件。所述签名过程可以包括以下操作:采用预先设定的摘要算法,例如:md5、sha-0或者sha-1算法生成应用程序a的摘要信息,利用应用程序a发布者的私钥对摘要信息加密(例如可以采用rsa加密算法)得到数字签名,最后将摘要信息、数字签名、以及应用程序a发布者的公钥证书(通常包含发布者的公钥、身份信息、生成数字签名采用的加密算法等)写入签名文件中,例如:1.xml文件,从而生成了发布者签名文件,并将发布者签名文件添加到应用程序a的签名文件列表中。

其次,应用程序a的发布者通过第一客户端向私有接口提供侧,即应用程序b的发布者,发送授权请求,授权请求中携带应用程序a的待签名文件。

应用程序b的发布者通过第二客户端接收授权请求后,采用其私钥对授权请求中携带的待签名文件执行签名操作,生成授权签名文件。签名过程可以包 括以下操作:采用预先设定的摘要算法,例如:md5、sha-0或者sha-1算法生成待签名文件的摘要信息,利用应用程序b发布者的私钥对摘要信息加密得到数字签名,最后将生成的摘要信息、数字签名、以及应用程序b发布者的公钥证书(通常包含应用程序b发布者的公钥、身份信息、生成数字签名采用的加密算法等)写入签名文件中,例如:2.xml文件,从而生成了应用程序b的发布者对应用程序a的授权签名文件,并将该文件返回给第一客户端。

最后,应用程序a的发布者通过第一客户端接收上述授权签名文件后,将该授权签名文件添加到应用程序a的签名文件列表中,从而完成了应用程序b的发布者向应用程序a的授权过程。

在上面描述的授权过程中,应用程序a在授权请求中携带的待签名文件,通常是应用程序a的相关文件,例如,可以是应用程序a的安装包中除去签名文件列表之外的所有文件。

优选地,为了减少对网络带宽的占用、以及提供对被签名文件完整性的逐一验证机制,所述待签名文件可以是应用程序a的签名文件列表中的、最近一次生成的签名文件。

例如:应用程序a需要访问应用程序b和应用程序c中的私有接口,那么应用程序a的发布者在对应用程序a签名生成发布者签名文件1.xml、并添加到应用程序a的签名文件列表后(此时1.xml文件是最近一次生成的签名文件),可以将1.xml文件发送给应用程序b的发布者,并将应用程序b的发布者返回的授权签名文件2.xml也添加到签名文件列表中,此时应用程序a的签名文件列表中包括1.xml文件和2.xml文件(此时2.xml文件是最近一次生成的签名文件);此后,应用程序a的发布者再将2.xml文件发送给应用程序c的发布者,并将应用程序c的发布者返回的授权签名文件3.xml添加到签名文件列表中,此时该签名文件列表中包括3个签名文件,应用程序a不仅可以访问其发布者发布的其他应用程序中的私有接口,也相应得到了应用程序b和应用程序c的发布者的授权。

采用上述优选实施方式,便于对签名文件的完整性进行验证,例如:在安装应用程序a的过程中进行签名文件验证时,可以用3.xml验证2.xml的完整性,用2.xml验证1.xml的完整性。

上面的例子描述了不同应用程序发布者之间的授权过程,在实际应用中, 承载应用程序a的系统也可以对外开放私有接口,应用程序a可以根据自己的需求访问系统开放的私有接口,在这种情况下,私有接口提供侧可以为系统发布者,上述授权过程可以为:应用程序a的发布者向系统发布者发送授权请求,系统发布者利用其私钥(也称系统私钥)对待签名文件执行签名操作,生成授权签名文件,并向应用程序a返回授权签名文件,该文件同样被添加到应用程序a的签名文件列表中。

此外,采用本技术方案提供的授权机制,使系统发布者主动参与到应用程序的授权过程成为可能。例如,某应用程序在系统中运营,系统发布者获取开发完毕的应用程序后,系统发布者可以根据应用程序实现的功能,判断是否需要向应用程序授权、以允许应用程序访问系统私有接口,如果需要则生成相应的授权信息(例如:利用系统私钥生成授权签名文件),并添加到应用程序中,随后再将应用程序上架发布。采用这种方式,便于系统发布者对在本系统内运营的应用程序进行授权管理,可以促进运营环境中应用程序与系统间的交互,便于应用程序访问系统提供的特殊服务,为整个系统的运维提供便利。

以上对应用程序的授权过程进行了描述,在此基础上,就可以针对应用程序在运行过程中执行的涉及某一特定私有接口的访问操作,判断应用程序是否已经得到了所述特定私有接口的提供侧的授权,并在得到授权的基础上允许应用程序访问所述特定私有接口。下面对该过程作详细说明。

请参考图1,其为本申请的一种应用程序对接口的访问方法的实施例的流程图。所述方法包括如下步骤:

步骤101、接收第一应用程序对特定私有接口的访问请求。

第一应用程序在安装后,可以根据使用者的需求或者系统的配置启动运行,如果应用程序在运行过程中执行对某特定私有接口的访问操作,通常会发出相应的访问请求,被访问方(例如实现所述特定私有接口的应用程序或者系统)或者负责接口访问控制的模块,则可以接收到相应的访问请求。所述访问请求中可以携带第一应用程序标识,和/或被访问的所述特定私有接口的相关描述信息等。

步骤102、判断第一应用程序是否由所述特定私有接口的提供侧授权,若是,则执行步骤103。

本步骤可以在第一应用程序的授权信息中,查找所述特定私有接口提供侧 的授权信息。例如:所述授权信息通常包括已针对第一应用程序执行授权操作的授权者的身份信息,而系统通常通过注册安装等过程,记录了被访问的所述特定私有接口的提供侧的身份信息,因此本步骤可以在第一应用程序的授权信息中,查找所述特定私有接口提供侧的身份信息,若找到则说明第一应用程序已得到了所述特定私有接口提供侧的授权,因此可以执行步骤103允许其访问所述特定私有接口,否则不允许其访问。在具体实施时,上述授权信息可以采用加密算法加密、本步骤则在执行相应的解密操作后进行判断,或者本步骤可以与提供身份验证服务的服务端协同执行,都是可以的。

优选地,如前面所述,为了避免授权信息被伪造,保证授权信息的真实性,可以采用数字签名技术生成授权信息,即:签名文件。相应的,本步骤则可以根据第一应用程序的签名文件列表中是否包含所述特定私有接口提供侧的签名文件,判断第一应用程序是否由所述特定私有接口的提供侧授权。

以第一应用程序访问第二应用程序的所述特定私有接口为例,本步骤可以从系统提取在第二应用程序安装过程中存储的所述特定私有接口的提供侧的公钥证书,并针对第一应用程序的签名文件列表中的每个签名文件,判断其中包含的公钥证书是否与所述特定私有接口提供侧的公钥证书一致,若一致,则当前参与比对的签名文件即为所述特定私有接口提供侧的签名文件,那么说明第一应用程序已由所述特定私有接口的提供侧授权。

优选地,为了简化本步骤的处理过程,提高执行效率,同时也为了便于进行权限管理,本实施例针对私有接口提出私有权限的概念,并将本步骤的授权判断过程分为两部分:安装第一应用程序时执行私有权限的获取操作,而本步骤则可以直接根据私有权限获取结果,判断第一应用程序是否被所述特定私有接口的提供侧授权。

应用程序或者系统可以在其配置文件中针对其对外提供的私有接口申明相应的私有权限,例如在权限申明语句中添加private描述信息,而第一应用程序则可以在其配置文件中申请私有权限,并在安装的过程中执行获取私有权限的操作。下面结合图2对这种优选实施方式作详细说明。

在第一应用程序的安装过程中时,执行下述步骤102-1至步骤102-3:

步骤102-1、从第一应用程序的签名文件列表中逐一提取公钥证书,并添加到签名集合中。

本步骤可以针对签名文件列表中的每个签名文件,执行以下操作:通过数字签名验证技术,对所述签名文件进行验证,并从通过验证的签名文件中提取公钥证书添加到签名集合中。

验证的过程主要是验证签名的真实性,同时也可以验证被签名文件的完整性。优选地,如果在签名授权的过程中,私有接口提供侧对第一应用程序签名文件列表中的、最近一次生成的签名文件执行签名操作,那么本步骤可以实现对被签名文件完整性的逐一验证。以第一应用程序的发布者签名文件为1.xml,第二应用程序发布者对1.xml签名后生成授权签名文件2.xml,第三应用程序发布者对2.xml签名后生成授权签名文件3.xml为例,本步骤采用数字签名验证技术对每个签名文件进行验证的过程如下所示:

a)用3.xml中的公钥证书所包含的公钥对3.xml中的数字签名进行解密,如果得到的摘要信息与3.xml中的摘要信息一致,则说明,该签名文件确实是3.xml中的公钥证书所述签名者签名生成的;随后计算2.xml的摘要信息,比对计算得到的摘要信息与执行解密操作得到的摘要信息是否一致,若一致,则说明2.xml文件的完整性没有遭到破坏。

b)用2.xml中的公钥证书所包含的公钥对2.xml中的数字签名进行解密,如果得到的摘要信息与2.xml中的摘要信息一致,则说明,该签名文件确实是2.xml中的公钥证书所述签名者签名生成的;随后计算1.xml的摘要信息,比对计算得到的摘要信息与执行解密操作得到的摘要信息是否一致,若一致,则说明1.xml文件的完整性没有遭到破坏。

c)用1.xml中的公钥证书所包含的公钥对1.xml中的数字签名进行解密,如果得到的摘要信息与1.xml中的摘要信息一致,则说明,该签名文件确实是1.xml中的公钥证书所述签名者签名生成的;随后计算第一应用程序的摘要信息,比对计算得到的摘要信息与执行解密操作得到的摘要信息是否一致,若一致,则说明第一应用程序的完整性没有遭到破坏。

在上述验证的过程中,可以将通过验证的签名文件中的公钥证书添加到签名集合中,以便于后续步骤进行签名信息的比对。

步骤102-2、解析第一应用程序的配置文件,提取其申请的、用于访问系统或者其他应用程序的私有接口的私有权限信息。

第一应用程序如果需要访问系统或者其他应用程序(即:除第一应用程序 之外的应用程序)的私有接口,则会在其配置文件中注明需要申请的与私有接口相对应的私有权限,本步骤可以通过解析第一应用程序的配置文件,提取其申请的私有权限信息。

步骤102-3、针对所述私有权限信息中的每个私有权限,执行下述操作:从预先生成的私有权限申明信息中提取所述私有权限对应的公钥证书,并在所述签名集合中查找所述公钥证书,若找到,则判定第一应用程序获取所述私有权限。

所述私有权限可以由应用程序申明,也可以由系统申明;所述私有权限申明信息则记录了系统以及已安装的各应用程序所申明的各个私有权限与其申明方的公钥证书的对应关系。

所述私有权限申明信息可以由安装程序在安装系统以及各应用程序的过程中通过以下过程生成:解析被安装的应用程序或者系统的配置文件,获取其申明的、用于访问私有接口的私有权限;从被安装的应用程序或者系统的发布者签名文件中提取公钥证书;建立被申明的私有权限与所述公钥证书的对应关系,并添加到所述私有权限申明信息中。

本步骤则可以针对步骤102-2提取的私有权限信息中的每个私有权限,执行下述操作:根据当前处理的私有权限,从预先生成的私有权限申明信息中提取对应的公钥证书,然后在第一应用程序的签名集合中查找所述公钥证书,若找到,则可以判定第一应用程序获取所述私有权限,即:第一应用程序可以访问对应于所述私有权限的私有接口。针对私有权限信息中的每个私有权限都进行上述处理,则完成了第一应用程序的私有权限获取过程。

在第一应用程序的安装过程中执行上述步骤102-1至步骤102-3后,第一应用程序拥有哪些私有权限就已经确定下来了。那么当第一应用程序在运行过程中访问步骤101所述的特定私有接口时,本步骤就可以根据上述安装过程的权限获取结果,判断第一应用程序是否已获取了对应于所述特定私有接口的私有权限,若已获取则可以判定第一应用程序由所述特定私有接口的提供侧授权,否则判定第一应用程序未被授权。

步骤103、允许第一应用程序访问所述特定私有接口。

执行到本步骤,说明第一应用程序已由所述特定私有接口的提供侧授权,因此允许第一应用程序访问所述特定私有接口,例如,第一应用程序可以调用 该特定私有接口对应的函数,或者执行所述特定私有接口中包含的各项操作等。

至此,通过步骤101-103对本实施例提供的应用程序对接口的访问方法进行了详细说明。通过上述描述可以看出,采用本实施例提供的上述方法,为应用程序发布者以及系统发布者提供了对私有接口的权限控制能力,能够呈现私有接口提供侧的授权意图,消除滥用权限导致的安全隐患;而且使得应用程序作者以及系统发布者敢于开放私有接口,从而能够促进应用程序之间、以及应用程序与系统之间的有效交互,有助于构建良好的服务生态环境。此外,采用本申请提供的上述方法,使系统发布者主动参与到应用程序的授权过程成为可能,为系统发布者的运维提供便利。

在上述的实施例中,提供了一种应用程序对接口的访问方法,与之相对应的,本申请还提供一种应用程序对接口的访问装置。请参看图3,其为本申请的一种应用程序对接口的访问装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种应用程序对接口的访问装置,包括:访问请求接收单元301,用于接收第一应用程序对特定私有接口的访问请求;授权判断单元302,用于判断第一应用程序是否由所述特定私有接口的提供侧授权;访问允许单元303,用于当所述授权判断单元的输出为是时,允许第一应用程序访问所述特定私有接口。

可选的,所述授权判断单元,具体用于根据第一应用程序的签名文件列表中是否包含所述私有接口的提供侧的签名文件,判断第一应用程序是否由所述私有接口的提供侧授权。

可选的,所述授权判断单元所采用的签名文件列表中的签名文件包括:第一应用程序发布者的发布者签名文件,或者,所述发布者签名文件以及不同于所述第一应用程序发布者的私有接口提供侧的授权签名文件。

可选的,所述授权判断单元所采用的签名文件列表中的授权签名文件是由以下单元生成的:

授权请求发送单元,用于第一客户端向私有接口提供侧发送授权请求;

授权签名文件生成单元,用于第二客户端根据接收到的授权请求,利用数字签名技术,采用私有接口提供侧的私钥对授权请求中携带的待签名文件执行 签名操作,生成私有接口提供侧的授权签名文件并返回给第一客户端;

授权签名文件接收单元,用于第一客户端接收所述授权签名文件,并将其添加到第一应用程序的签名文件列表中。

可选的,所述授权请求单元所发送的授权请求中携带的待签名文件包括:第一应用程序签名文件列表中的、最近一次生成的签名文件。

可选的,所述装置还包括:权限获取单元,用于第一应用程序在安装过程中获取用于访问私有接口的私有权限;

所述权限获取单元包括:

签名集合生成子单元,用于从第一应用程序的签名文件列表中逐一提取公钥证书,并添加到签名集合中;

私有权限提取子单元,用于解析第一应用程序的配置文件,提取其申请的、用于访问系统或者其他应用程序的私有接口的私有权限信息;

私有权限获取执行子单元,用于针对所述私有权限信息中的每个私有权限,执行下述操作:从预先生成的私有权限申明信息中提取私有权限对应的公钥证书;在所述签名集合中查找所述公钥证书,若找到,则判定第一应用程序获取所述私有权限;

相应的,所述授权判断单元,具体用于判断第一应用程序是否已获取访问所述特定私有接口的私有权限,若是,则判定第一应用程序由所述特定私有接口的提供侧授权,否则未授权。

可选的,所述签名集合生成子单元,具体用于针对所述签名文件列表中的每个签名文件,通过数字签名验证技术对所述签名文件进行验证,并从通过验证的签名文件中提取公钥证书添加到所述签名集合中。

此外,本申请还提供一种应用程序的授权请求方法。请参考图4,其为本申请提供的一种应用程序的授权请求方法的实施例的流程图,本实施例与上述实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种应用程序的授权请求方法包括:

步骤401、向私有接口提供侧发送授权请求,请求授予应用程序访问所述私有接口的权限。

所述授权请求中可以携带所述应用程序的待签名文件,所述待签名文件可以为,所述应用程序签名文件列表中的、最近一次生成的签名文件。

步骤402、接收所述私有接口提供侧返回的授权信息。

所述授权信息可以包括:利用数字签名技术,采用所述私有接口提供侧的私钥对授权请求中携带的待签名文件执行签名操作后生成的授权签名文件。

步骤403、将所述授权信息添加到第一应用程序中。

本步骤可以将接收到的授权信息,例如,授权签名文件,添加到所述应用程序的签名文件列表中。

通过步骤401-403的描述可以看出,采用本实施例提供的应用程序的授权请求方法,对于需要访问某私有接口的应用程序,可以预先向所述私有接口的提供侧请求授权、并获取相应的授权信息,从而可以在应用程序的运行过程中判定其已由所述私有接口的提供侧授权、并进一步允许其访问所述私有接口。

在上述的实施例中,提供了一种应用程序的授权请求方法,与之相对应的,本申请还提供一种应用程序的授权请求装置。请参看图5,其为本申请的一种应用程序的授权请求装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种应用程序的授权请求装置,包括:授权请求发送单元501,用于向私有接口提供侧发送授权请求,请求授予应用程序访问所述私有接口的权限;授权信息接收单元502,用于接收所述私有接口提供侧返回的授权信息;授权信息添加单元503,用于将所述授权信息添加到所述应用程序中。

可选的,所述授权请求发送单元所发送的授权请求中携带所述应用程序的待签名文件;

所述授权信息接收单元接收到的授权信息包括:利用数字签名技术,采用所述私有接口提供侧的私钥对所述待签名文件执行签名操作后生成的授权签名文件;

所述授权信息添加单元,具体用于将授权信息接收单元接收到的授权签名文件添加到所述应用程序的签名文件列表中。

此外,本申请还提供一种应用程序的授权方法。请参考图6,其为本申请提 供的一种应用程序的授权方法的实施例的流程图,本实施例与上述实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种应用程序的授权方法包括:

步骤601、确定待授权应用程序。

本步骤可以根据接收到的请求授予私有接口访问权限的授权请求,确定所述待授权应用程序,例如,所述授权请求中可以携带待授权应用程序的名称或者标识等;所述授权请求中还可以携带待签名文件。

为了便于系统发布者运营、使系统发布者主动参与到应用程序的授权过程,本步骤也可以从系统运营的待发布应用程序中确定所述待授权应用程序。在这种情况下,待签名文件可以是,已确定的待授权应用程序的相关文件。

在具体实施中,可以将所述待授权应用程序的签名文件列表中的、最近一次生成的签名文件,作为所述待签名文件。

步骤602、生成表征私有接口提供侧允许所述待授权应用程序访问私有接口的授权信息。

本步骤可以利用数字签名技术,采用所述私有接口提供侧的私钥对所述待授权应用程序的待签名文件执行签名操作,生成授权签名文件,所述授权签名文件即为所述授权信息。

对于在步骤601中接收到授权请求的情况,在执行步骤602之后还可以将生成的授权信息,例如授权签名文件,返回给所述授权请求的发送方;对于在步骤601中由系统发布者确定待授权应用程序的情况,在执行步骤602之后,则可以将生成的授权信息,例如授权签名文件,添加到所述应用程序的签名文件列表中。

通过步骤601-603的描述可以看出,采用本实施例提供的应用程序的授权方法,私有接口提供侧可以预先为需要访问其私有接口的应用程序生成授权信息,从而可以在所述应用程序的运行过程中判定其已由所述私有接口的提供侧授权,并允许其访问所述私有接口。

在上述的实施例中,提供了一种应用程序的授权方法,与之相对应的,本申请还提供一种应用程序的授权装置。请参看图7,其为本申请的一种应用程序的授权装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实 施例仅仅是示意性的。

本实施例的一种应用程序的授权装置,包括:待授权应用程序确定单元701,用于确定待授权应用程序;授权信息生成单元702,用于生成表征私有接口提供侧允许所述待授权应用程序访问私有接口的授权信息。

可选的,所述授权信息生成单元,具体用于利用数字签名技术,采用所述私有接口提供侧的私钥对所述待授权应用程序的待签名文件执行签名操作,生成授权签名文件,所述授权签名文件即为所述授权信息。

可选的,所述待授权应用程序确定单元,具体用于根据接收到的请求授予私有接口访问权限的授权请求,确定所述待授权应用程序;

所述授权信息生成单元所采用的待签名文件包括:所述授权请求中携带的文件;

所述装置还包括:授权签名文件返回单元,用于将所述授权信息生成单元生成的授权签名文件返回给所述授权请求的发送方。

可选的,所述待授权应用程序确定单元,具体用于从系统运营的待发布应用程序中确定所述待授权应用程序;

所述授权信息生成单元所采用的待签名文件包括:所述待授权应用程序的相关文件;

所述装置还包括:授权签名文件添加单元,用于将所述授权信息生成单元生成的授权签名文件添加到所述应用程序的签名文件列表中。

此外,本申请还提供一种应用程序的权限获取方法。请参考图8,其为本申请提供的一种应用程序的权限获取方法的实施例的流程图,本实施例与上述实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种应用程序的权限获取方法包括:

步骤801、从应用程序的授权信息中逐一提取表征授权者身份的信息,并添加到授权者身份集合中。

所述授权信息,是表征私有接口提供侧允许所述应用程序访问其私有接口的信息,授权信息中至少包括表征授权者身份的信息(例如:唯一标识授权者身份的id号码),还可以包括所述应用程的标识等信息。本步骤从所述应用程序的授权信息中逐一提取表征授权者身份的信息,并添加到授权者身份集合中。

优选地,所述授权信息为签名文件列表,所述表征授权者身份的信息为公钥证书,所述授权者身份集合为签名集合。所述签名文件列表可以包括:所述应用程序发布者的发布者签名文件,或者,所述发布者签名文件以及不同于所述应用程序发布者的私有接口提供侧的授权签名文件。

步骤802、解析所述应用程序的配置文件,提取其申请的用于访问私有接口的私有权限信息。

步骤803、针对所述私有权限信息中的每个私有权限,执行下述操作:从预先生成的私有权限申明信息中提取所述私有权限对应的身份信息,并在所述授权者身份集合中查找所述身份信息,若找到,则判定所述应用程序获取所述私有权限。

其中,所述私有权限申明信息可以在安装系统以及各应用程序的过程中生成,其中记录了系统以及已安装的各应用程序所申明的各个私有权限与其申明方的身份信息的对应关系。

通过步骤801-803可以看出,采用本实施例提供的应用程序的权限获取方法,可以根据应用程序的授权信息以及应用程序申请的私有权限,确定所述应用程序所具有的私有权限,从而便于对所述应用程是否由私有接口提供侧授权做出判断。特别是,在安装应用程序的过程中实施上述步骤,能够简化应用程序运行过程中对授权状况的判断过程,提高执行效率。

在上述的实施例中,提供了一种应用程序的权限获取方法,与之相对应的,本申请还提供一种应用程序的权限获取装置。请参看图9,其为本申请的一种应用程序的权限获取装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种应用程序的权限获取装置,包括:身份集合生成单元901,用于从应用程序的授权信息集合中逐一提取表征授权者身份的信息,并添加到授权者身份集合中;私有权限提取单元902,用于解析所述应用程序的配置文件,提取其申请的用于访问私有接口的私有权限信息;私有权限获取单元903,用于判定所述应用程序是否获取所述私有权限信息中的私有权限;

所述私有权限获取单元,包括:

循环控制子单元,用于针对私有权限信息中的每个私有权限,依次触发身 份信息提取子单元、以及查找判定子单元工作;

身份信息提取子单元,用于从预先生成的私有权限申明信息中提取对应于当前处理的私有权限的身份信息;

查找判定子单元,用于在所述授权者身份集合中查找所述身份信息提取子单元所提取的身份信息,若找到,则判定所述应用程序获取所述私有权限。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

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