基于操作系统授权证书的面向服务的接口认证方法与流程

文档序号:11959993阅读:232来源:国知局
基于操作系统授权证书的面向服务的接口认证方法与流程
本发明涉及一种接口认证方法,尤其是一种基于操作系统授权证书的面向服务的接口认证方法,其在保证接口调用方认证的同时,也可以对接口提供方所在的操作系统(OS)进行认证。
背景技术
:目前市场上主流的开放平台的接口认证方法均采用OAuth2.0的接口认证框架实现。OAuth2.0接口认证框架目的是为了第三方应用程序在使用开放平台接口时不能获取终端用户的个人认证信息,OAuth2.0认证框架使用独立的认证中心和资源中心,并结合授权码(auth_code)、访问授权码(access_token)、刷新授权码(refresh_token)等概念实现。OAuth2.0的接口认证流程如下:a)终端用户使用第三方应用程序时,第三方应用程序要求用户给予授权;b)终端用户同意给予第三方应用程序授权;c)认证中心对第三方应用程序授权后,同意发放auth_code;d)第三方应用程序使用auth_code,向资源中心申请获取资源;e)资源中心确认auth_code有效后,同意向第三方应用程序开放资源。现有技术的认证方法存在如下不足:λOAuth2.0接口认证框架不仅对第三方应用程序有认证功能,而且还兼有授权功能,而本文主要关注开放平台对第三方应用程序的认证,如果基于OAuth2.0接口认证框架,则增加了无用的工作量;λOAuth2.0接口认证框架在集成时需要修改第三方应用程序的处理逻辑,这样增加了第三方应用程序使用开放平台的难度,增加了集成时间,可能会造成第三方应用程序开发者的流失;λOAuth2.0接口认证框架要求有独立的、在开放平台提供方内部运行的认证中心,且要求认证中心对第三方应用程序提供外部Web接口。由于目前在很多客户场景下,开放平台是部署和运行在客户集群环境的局域网内部,与当前市场上OAuth2.0的面向互联网的应用模式不同,导致了OAuth2.0并不适用于此场景;λOAuth2.0接口认证框架使用的是集中化的认证中心,而且认证数据源存储在数据库中,而在目前主流的应用场景下,认证数据源是分散在各个客户局域网的各个操作系统的授权证书里,导致OAuth2.0接口认证框架无法与操作系统授权证书对接,所以此场景下OAuth2.0接口认证框架无法正常工作。技术实现要素:为了克服现有技术的上述缺陷,本发明的目的是提供一种基于操作系统授权证书的面向服务的接口认证方法,其在保证接口调用方认证的同时,也可以对接口提供方所在的操作系统(OS)进行认证,令非法操作系统无法使用接口提供方,使得其可防止未经授权的第三方应用程序访问开放平台接口,同时可防止开放平台运行在未经授权的操作系统上。本发明的主要设计思路是:为了保证一个开放平台仅能运行在已授权的操作系统上,同时保证只有已授权的第三方应用程序才能使用开放平台的接口,特设计一种基于操作系统授权证书的面向服务的接口认证方法。在此方法中开放平台使用操作系统授权证书作为认证数据源,在开放平台启动和运行过程中, 不间断检测当前操作系统的授权证书是否有效;同时开放平台在接收第三方应用程序的接口调用请求时,要求第三方应用程序传入用户认证信息,开放平台使用操作系统授权证书来验证用户认证信息是否有效,验证第三方应用程序是否已授权。为了达到上述目的,本发明提供的主要技术方案包括:一种基于操作系统授权证书的面向服务的接口认证方法,其使用操作系统授权证书作为应用平台接口授权认证的唯一认证数据源,即,一方面利用操作系统授权证书验证该操作系统是否已被授权,另一方面利用操作系统授权证书作为应用平台认证第三方应用程序的认证数据源。使得在对接口调用方进行认证的同时,还可以对第三方应用程序(如接口提供程序)的操作系统进行认证;使得未经授权的操作系统,即使安装了接口提供程序,也无法正常使用。即,可以避免经授权的接口提供程序被移用至未经授权的操作系统上。其中,应用平台在检测当前运行的操作系统是否已授权的同时,检测调用应用平台接口的第三方应用程序是否已授权。其中,为了保证当操作系统授权证书过期、停用或删除后,接口提供方程序立刻停止对任何接口调用方提供服务,优选为,在应用平台启动和运行过程中,不间断检测当前操作系统的授权证书是否有效,以实现当操作系统证书不可用后,操作系统提供的任何程序/服务均不可用。其中,不间断检测当前操作系统的授权证书是否有效的同时,应用平台在接收第三方应用程序的接口调用请求时,要求第三方应用程序传入用户认证信息,应用平台使用操作系统授权证书来验证用户认证信息是否有效,验证第三方应用程序是否授权。其中,所述操作系统授权证书中加密存储有用户ID和秘钥 (secret_key)、所部署计算机网卡的MAC地址、授权证书的有效时间。上述任一种基于操作系统授权证书的面向服务的接口认证方法,所述应用平台为一开放平台(面向服务的开放平台:指一种将系统的主要功能以外部Web接口的方式提供给第三方应用程序、用于第三方系统集成的平台,简称开放平台),所述操作系统授权证书的认证方法为:使用分配给用户的ID和secret_key,以及六位随机数(random)或当前时间(time),对这三个参数的值进行自然序排序,将结果进行拼接后使用SHA-1算法进行摘要计算,将得到加密字符串(encypted_str),并将ID和encypted_str,以及random或time传递给开放平台,在开放平台端使用同样的算法计算临时加密字符串(tmp_encypted_str)与传入的encypted_str是否相同,如果相同,则认证通过,否则认证失败。为了进一步提高安全性,所述操作系统授权证书的认证方法为:使用分配给用户的ID、secret_key、六位随机数random和当前时间time,对这四个参数的值进行自然序排序,将结果进行拼接后使用SHA-1算法进行摘要计算,将得到encypted_str,并将ID、encypted_str、random和time传递给开放平台,在开放平台端使用同样的算法计算tmp_encypted_str与传入的encypted_str是否相同,如果相同,则认证通过,否则认证失败。上述任一种基于操作系统授权证书的面向服务的接口认证方法,所述应用平台为一开放平台,其主要步骤包括:S1、为第三方应用程序调用者分配唯一ID,用于标示用户,并分配唯一的secret_key,表示该ID用户的秘钥,同时将ID和secret_key,以及第三方应用程序调用者要部署操作系统的计算机的网卡MAC地址、授权有效的开始时间和截止时间,作为输入数据,使用授权证书生成工具生成授权证书;S2、在操作系统内安装开放平台,并启动开放平台,开放平台在启动时首先启动操作系统授权证书检测线程,循环调用授权证书函数库,检测当前操作系统的授权证书是否有效;当无效时,开放平台即认为当前操作系统授权证书无效,然后退出;S3、第三方应用程序调用者在访问开放平台的接口前,先生成一个六位随机整数random和当前时间time,然后把ID、random、time三个参数与secret_key的值按照自然序排序,然后拼接成一个字符串tmp_str,然后使用SHA-1算法对tmp_str做摘要得到encypted_str,然后在访问接口时将random、time、ID和encypted_str作为参数同时传递给开放平台;S4、开放平台在接收到第三方应用程序的接口调用请求后,首先判断请求中是否包含了random、time、encypted_str和ID四个参数,如果不包含则直接拒绝请求,返回错误;如果包含,则继续调用授权证书的函数库中的认证函数,并将这四个参数传递给认证函数,认证函数返回认证是否成功。本发明的基于操作系统授权证书的接口认证方法,实现了操作系统授权证书与开放平台接口认证的对接,保证使用操作系统授权证书作为唯一的授权认证数据源,应用平台能够检测当前运行的操作系统是否已授权的同时,检测调用应用平台接口的第三方应用程序是否已授权,可防止未经授权的第三方应用程序访问开放平台接口,同时可防止开放平台运行在未经授权的操作系统上。加强了传统的面向服务的接口认证强度,并与底层的操作系统级授权证书对接,实现统一且跨多层的认证方案。受益于此种统一的认证方案,可减少授权认证模块的研发成本,并可提高授权认证的稳定性;同时由于可显著降低开放平台在未授权操作系统、被未授权第三方应用程序访问的概率,更保护开放平台的商业价 值。附图说明图1是本发明一个实施例中的操作系统授权证书生成原理图;图2是本发明一个实施例中的开放平台对操作系统的认证检测流程图;图3是本发明一个实施例中的开放平台对第三方应用程序的认证检测流程图;图4是本发明一个实施例中的操作系统授权证书认证算法流程图;图5是本发明一个实施例应用的系统结构图。具体实施方式为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式对本发明作进一步描述。参见图1至图4,本发明一个实施例的基于操作系统授权证书的面向服务的接口认证方法,其主要包括如下步骤:第一步,为第三方应用程序调用者分配唯一ID,用于标示用户,并分配唯一的secret_key,表示该ID用户的秘钥。同时将ID和secret_key,以及第三方应用程序调用者要部署操作系统的计算机的网卡MAC地址、授权有效的开始和截止时间,作为输入数据,使用授权证书生成工具生成授权证书,具体原理见图1。第二步,在操作系统内安装开放平台,并启动开放平台。开放平台在启动时首先启动操作系统授权证书检测线程,循环调用授权证书函数库,检测当前操作系统的授权证书是否有效;当无效时,开放平台即认为当前操作系统授权证书无效,然后退出。流程见图2。第三步,第三方应用程序调用者在访问开放平台的接口前,先生成一个六位随机整数random和当前时间time,然后把ID、random、time三个参数与secret_key的值按照自然序排序,然后拼接成一个字符串tmp_str,然后使用SHA-1算法对tmp_str做摘要得到encypted_str,然后在访问接口时将random、time、ID和encypted_str作为参数同时传递给开放平台。此步骤的目的是保证第三方应用程序在访问开放平台时必须保证提交认证信息,凡是不提交认证信息的接口访问请求开放平台直接拒绝。第四步,开放平台在接收到第三方应用程序的接口调用请求后,首先判断请求中是否包含了random、time、encypted_str和ID四个参数,如果不包含则直接拒绝请求,返回错误;如果包含,则继续调用授权证书的函数库中的认证函数,并将这四个参数传递给认证函数,认证函数返回认证是否成功,流程见图3。其中认证函数的认证流程如图4所示(与第三步中第三方应用程序调用者在访问接口时生成encypted_str的算法类似)。参见图5,本发明还提供一种应用本发明方法的系统实例。其中的操作系统指当前市场上主流的基于Linux的国产操作系统——中标麒麟服务器操作系统;其中的授权证书(即授权文件):指在中标麒麟服务器操作系统上用于用户授权的文件;其中的授权证书生成工具(即用以生成授权证书的工具):指用于生成中标麒麟服务器操作系统授权证书的工具;其中的开放平台:指市售的中标麒麟综合管理平台v2.0(Systemcenter2.0)。其可以按照如下方式实施:1)使用授权证书生成工具生成授权证书为第三方应用程序调用者随机分配ID为:app_user_id1,分配secret_key为:205811dc810811e4a14a6c40089a2212,第三方部署的计算机的MAC地址是:6C:40:08:9A:22:12,授权的开始时间是2014-10-1000:00:00,授权的截止时间是2015-10-1000:00:00,将这几个数据写到授权证书生成工具的界面中,生成操作系统的授权证书。2)安装操作系统并导入授权证书安装操作系统,然后将授权证书导入到操作系统中。硬件平台和操作系统如下表所示:表1操作系统部署软硬件要求统计表硬件环境CPU内存硬盘最低运行环境PIII以上CPU1G2G推荐运行环境PIV以上CPU2G以上20G以上软件环境产品类别产品名称版本号基础平台操作系统中标麒麟服务器操作系统产品6.53)安装开放平台使用Systemcenter2.0作为开放平台的实例,在操作系统中安装开放平台。4)为第三方应用程序设定ID和secret_key利用第1)步中为第三方应用程序调用者分配的ID和secret_key,给第三方应用程序设定其使用的ID和secret_key,用于在调用开放平台接口时提交相应的认证数据。综上所述,本发明的基于操作系统授权证书的面向服务的接口认证 方法,使用操作系统授权证书作为认证数据源并应用于面向服务的接口认证,使得操作系统授权证书一方面验证本操作系统是否已被商业授权,另一方面也可以作为开放平台认证第三方应用程序的认证数据源,实现了分布式的面向服务的接口的认证方案。使得未经认证的非法操作系统无法使用接口提供方,并可防止未经授权的第三方应用程序访问开放平台接口,同时可防止开放平台运行在未经授权的操作系统上。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1