吴龙波
大数据作为基础性战略资源,加快推动数据资源共享开放和开发应用已经成为国家的战略目标[1]。随着航班量的持续猛涨,空管数据量急剧提升,中南地区作为全国最繁忙的空域,运行压力不断增大。目前中南地区生产系统和办公管理系统众多,不同业务系统间的交互日渐频繁和复杂,亟需一个统一的数据处理和交换平台。民航中南空管局在信息化专项发展建设规划中明确提出了建设云数据中心的计划,为数据的统一采集交换提供了共享平台,但空管行业数据具有敏感性,面临的一个重要威胁是其资源或服务的未授权访问,尤其当数据汇聚到云数据中心时,如何建设资源或服务的认证授权机制,实现不同业务系统的安全数据交换,已经成为一个建设要点。
OAuth[2](Open Authorization)2.0即开放授权协议,是目前主流的认证授权机制,在FaceBook等互联网公司中有广泛应用。OAuth协议本质为数据资源授权服务,为数据拥有者、数据中心和申请访问用户三者之间提供了一个安全可靠的协议标准,申请访问用户可以使用Oauth认证服务在数据拥有者的许可下获取被授权的在云数据中心的资源。OAuth允许数据拥有者提供一个令牌给申请用户,一个令牌对应一个特定的数据资源路径,同时该令牌只能在特定的时间内访问特定的资源。
为实现可靠的认证授权机制,OAuth2.0构建了四个角色,分别为资源拥有者、资源服务器、授权服务器和客户端,以下为四个角色的详细说明。
1)资源拥有者(Resource Owner):是数据资源的持有者,可以授权给其他用户访问名下受保护的数据资源,其实体可以使一个单位或个人。
2)资源服务器(Resource Server):存储受保护资源的地方,本文中为云数据中心,客户端通过访问令牌向资源服务器请求资源,资源服务器验证通过后给客户端发送相应受保护资源。
3)授权服务器(Authorization Server):对资源拥有者进行验证,得到资源拥有者的授权后,对客户端颁发授权令牌(Access Token),授权服务器可以与资源服务器整合在一起。
4)客户端(Client):即数据资源申请访问者,自身不存储数据,而是在得到资源拥有者授权后,使用其提供的授权令牌在有效期内访问受保护的数据资源,应用到客户端所在的应用系统。
下面以空管的网络和气象部门在云数据中心交换数据为例,详细说明OAuth2.0的资源认证授权和访问流程。我们假设气象部门将气象云图资源保存在云数据中心,网络部门通过云数据中心向气象部门申请访问气象云图的授权,在这个场景中,资源拥有者为气象部门,资源服务器和授权服务器为云数据中心,网络部门为客户端。整个授权流程如图1所示,授权流程包含6个步骤[3],每个步骤说明如下。
1)请求授权:客户端(网络部门)向资源拥有者气象部门请求访问特定资源(气象报文),客户端要求气象用户给予授权。
2)访问许可:气象用户同意给予客户端授权。
3)令牌申请:客户端使用上一步获得的授权,向授权服务器(云数据中心)申请令牌。
4)令牌发放:授权服务器对客户端进行认证以后,如确认通过,则发放授权令牌。
5)请求资源:客户端使用令牌,向资源服务器(云数据中心)申请获取资源(气象报文)。
6)资源响应:资源服务器(云数据中心)确认访问令牌有效性,如无问题则向客户端开放资源(气象报文)。
6个步骤之中,第二步是关键,即用户怎样才能给与客户端授权。有了这个授权以后,客户端就可以获取令牌,进而凭令牌获取资源。
为保障数据发布和调用安全,基于OAuth2.0的资源认证授权机制作用在数据中心的数据服务层,如图2所示,其中包括3个要素:用户身份统一验证、认证授权机制、REST服务。
REST服务:REST(Representational State Transfer),即“表述状态转移”,它将需要操作的事物抽象为资源,同时给每一个资源赋予一个唯一的的资源标识符URI,并通过HTTP处理和传输资源状态,是当前API交换的主流服务规范。通过REST服务,可以将云数据中心的所有数据资源的访问转化为API接口,客户端程序通过申请API接口的访问权限来达到获取受保护的数据资源。
用户统一身份验证:面向所有云数据中心的用户,统一实现用户的身份的验证和权限分配。
认证授权机制:应用了OAuth2.0的认证授权流程,与REST结合后,保障了每一个资源在被访问前都必须申请该资源拥有者的授权,在取得授权后向云数据中心申请访问令牌,通过访问令牌在指定时间内访问REST服务接口,达到访问受保护资源的目的。
OAuth2.0是目前主流的资源认证授权协议,本文研究了将其应用在空管数据安全访问的流程,并对Oauth2.0认证授权机制在云数据中心的应用进行了研究,有效解决了当前空管业务系统安全交互的难题,对推进航空安全大数据建设有重要意义。
图1 OAuth2.0授权流程图
图2 OAuth2.0在数据中心应用图