劉召棟 周億城
湖南省科學技術信息研究所 湖南 長沙 410000
近年來政府提出加快政務信息系統整合,建設“互聯網+政務服務”平臺實現“一站式”網上辦事、“一網通”公共服務、“智能化”科技決策、“數字化”資源共享。本文以湖南科技管理和科技服務行業的信息化需求為主線,制定賬戶數據信息標準和流程管理規范,建設賬戶管理中心和賬戶數據中心,對內、對外提供統一的SSO登錄入口,支持多種認證方式,為各應用系統提供統一的安全管理服務,為實現“一站式”網上辦事、“一網通”公共服務奠定基礎,建設一套“互聯網+政務服務”平臺。
單點登錄和Apereo CAS框架是實現“互聯網+政務服務”平臺的關鍵技術。本小節重點介紹單點登錄、Apereo CAS框架的原理及認證流程,并闡述相比較早期登錄技術的優勢。
隨著信息化建設和網絡技術的發展,特別是Web應用系統的流行,湖南省科學技術廳開發了多個業務應用系統,分別是:電子政務OA系統、湖南省科技管理信息系統、湖南省科技報告共享服務系統、湖南省科研設施和科研儀器開放共享服務平臺、湖南省科學技術獎勵綜合業務管理平臺等。這些系統分別分散于各個建設單位,長期以來積累的大量的業務數據,方便了各個部門辦公,提升了一定的管理效率。同時,因為這些系統在建設之初,缺乏統一的規劃管理,各個系統的數據存在相互不通的現象,給現在的科技管理、系統安全帶來了一定的困擾。
如果一個多業務系統應用群中部署了單點登錄,則只要一次用戶身份驗證成功,就可以獲取應用群中其他應用系統的訪問控制權限,不需要重復登錄[1]。
單點登錄機制有用戶、web應用和認證中心三個角色,其中認證中心只能有一個,用戶和web應用可以有多個。與傳統的單個系統登錄機制相比較,單點登錄需要一個統一的身份認證中心作為唯一登錄入口來接收用戶提交的賬號、密碼信息,其 他web應用間接地從認證中心獲取授權。這種授權通過令牌機制來實現,當用戶的登錄信息認證通過時,認證中心會創建令牌并將其傳遞到各個子系統。從而用戶可以被授權進入各個子系統。
Apereo CAS是耶魯大學發起的一個開源項目,能很好地實現單點登錄和統一身份認證,其簡單性、時效性、安全性優勢,從而被廣泛應用。用戶通過CAS認證,只需要一次登錄就可以在信任的應用系統間互相訪問。
Apereo CAS分為Apereo CAS服務器和Apereo CAS客戶端兩部分。
(1)Apereo CAS服務器
服務器端是獨立部署的web服務器,主要負責認證用戶的身份信息,是單點登錄系統中唯一的認證入口。用戶名、密碼等安全信息在Apereo CAS認證服務器中稱為用戶憑證[1]。當用戶身份認證完成后,Apereo CAS服務器還負責認證訪問各個應用系統所需要的各種票據[1]。
(2)Apereo CAS客戶端

圖1 Apereo CAS的認證流程
Apereo CAS客戶端通常就是Web應用服務器,Apereo CAS客戶端以庫文件形式嵌入到每個應用系統中來實現和服務器端的交互認證[2]。當用戶訪問時,Apereo CAS客戶端不直接進行身份認證,而是將請求重定向到Apereo CAS服務器端進行統一身份認證。當用戶通過瀏覽器訪問Apereo CAS客戶端時,客戶端會檢查http或https協議所攜帶的會話參數或是服務器會話中是否攜帶憑證ST(Service Ticket),如果都沒有,Apereo CAS客戶端就會重定向用戶的請求到 Apereo CAS服務器端并傳遞回調地址,Apereo CAS服務器端生成TGT(Ticket Granting Ticket)并放入緩存,生成TGC(Ticket Granting Cookie)并寫入客戶端瀏覽器,生成TGT簽發一個ST,根據傳遞的回調地址和ST,用戶再重新訪問Apereo CAS客戶端,Apereo CAS客戶端根據ST和Apereo CAS服務器對用戶身份進行認證[3]。具體認證流程如圖1所示。
湖南科技“互聯網+政務服務”平臺基于Apereo CAS技術,實現“一站式”網上辦事、“一網通”公共服務、“智能化”科技決策、“數字化”資源共享。主要建設內容包括制定了賬戶信息數據標準和管理流程規范,建立統一賬戶管理中心支撐科技政務服務平臺和科技公共服務平臺實施。

圖2 統一身份認證平臺邏輯架構圖
技術架構主要分為上下三層,分別為平臺層、應用層、服務層。
(1)平臺層:主要是“互聯網+政務服務”一體化平臺,平臺可以通過互聯網和政務外網連接到省級和國家級層面的政務平臺,以協同服務模式實現對上級平臺的傳輸,并同步賬戶數據科技廳的“互聯網+政務服務”一體化平臺。
(2)應用層:包括統一賬戶管理中心、統一賬戶數據中心、應用門戶、統一身份認證,以自然人(唯一標識:身份證號)和法人(唯一標識:統一社會信用代碼)實現用戶注冊、審核、用戶信息查詢修改、密碼修改、用戶找回等功能。
(3)服務層:打通科技信息管理系統、瀟湘要素市場網、大儀網等接口的通道,實現賬戶數據的同步承接傳遞。
系統主要實現界面如圖3、圖4、圖5所示。

圖3 統一身份認證中心

圖4 統一應用門戶系統

圖5 統一賬戶管理系統

圖6 湖南科技“互聯網+政務平臺”部署結構圖

序號 技術產品描述1操作系統操作系統名稱:Cetos操作系統版本:6.5默認語言環境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務器軟件Apache Tomcat版本號:7.0.107

序號 技術產品描述1操作系統操作系統名稱:Cetos操作系統版本:6.5默認語言環境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務器軟件Apache Tomcat版本號:7.0.107

序號 技術產品描述1操作系統操作系統名稱:Cetos操作系統版本:6.5默認語言環境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務器軟件Apache Tomcat版本號:7.0.107

序號 技術產品 描述1 操作系統 操作系統名稱:Cetos操作系統版本:6.5默認語言環境:UTF-8 2 數據庫MySQL Community Server 8.0.15字符集:utf8mb4排序規則:utf8mb4_general_ci 3 緩存軟件 Redis版本號:6.0.10
(1)賬戶信息數據標準
制訂統一的賬戶信息數據標準是實現統一身份認證服務平臺的前提,在統一的賬戶數據標準下,各應用系統之間才能實現賬戶數據的互聯互通。湖南科技“互聯網+政務服務”平臺參考《湖南省“互聯網+政務服務”一體化平臺統一身份認證接入標準規范0523》,部分賬戶數據標準如下表:

表1 賬戶(自然人)數據標準

表2 組織機構(法人)數據標準

續表
(2)OAuth2.0協議
OAuth(Open Authorization,開放授權)是為用戶資源的授權定義了一個安全、開放及簡單的標準,第三方無須知道用戶的賬號及密碼,就可獲取到用戶的授權信息。協議特點:
1)簡單:不管是OAUTH服務提供者還是應用開發者,都很易于理解與使用;
2)安全:沒有涉及用戶密鑰等信息,更安全更靈活;
3)開放:任何服務提供商都可以實現OAUTH,任何軟件開發商都可以使用OAUTH;
湖南科技“互聯網+政務服務”平臺為第三方應用接入提供了符合OAuth2.0協議標準的認證接口,包括authorize、accessToken、profile、logout服務。
①authorize 服務
功能說明:獲取授權碼code。調用authorize服務地址,會轉到SSO認證中心登錄頁面,輸入賬號口令提交登錄后,SSO認證中心會轉到回調地址并帶上授權碼code。
服務地址:http://auth-server/oauth2.0/authorize。
請求方式:GET/POST。
參數說明

參數名稱 必選 類型 說明client_id true string 服務商提供的client_id redirect_uri true string 授權后的回調地址,需與注冊應用里的回調地址一致response_type true string 此值固定為 code state false string 狀態參數,原值返回
②accessToken 服務
功能說明:獲取訪問令牌token。
服務地址:http://auth-server/oauth2.0/accessToken。
請求方式:GET/POST。
參數說明

參數名稱 必選 類型 說明client_id true string 服務商提供的client_id client_secret true string 服務商提供的client_secret grant_type true string 默認值authorization_code redirect_uri true string 授權后的回調地址,需與注冊應用里的回調地址一致code true string authorize請求回來的code
③profile 服務
功能說明:獲取SSO登錄賬戶信息。
服務地址:http://auth-server/oauth2.0/profile。
請求方式:GET/POST。
參數說明

參數名稱 必選 類型 介紹access_token true string 第三部返回的access_token值
④logout 服務
功能說明:單點退出。
服務地址:http://auth-server/logout。
請求方式:GET。
參數說明

參數名稱 必選 類型 說明client_id true string 服務商提供的client_id sessionId true string 會話ID,在profile服務可獲取
基于Apereo CAS的“互聯網+政務服務”平臺實現“一站式”網上辦事、“一網通”公共服務能力,解決了湖南科技行業管理單位中各應用系統用戶分散管理的問題,使用戶訪問不同業務系統的方式更加便捷,同時減輕了信息管理部門對賬號和用戶管理的工作壓力,對湖南科技管理行業有著積極的現實意義。