吳龍波
大數據作為基礎性戰略資源,加快推動數據資源共享開放和開發應用已經成為國家的戰略目標[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在數據中心應用圖