劉召棟 周億城
湖南省科學(xué)技術(shù)信息研究所 湖南 長(zhǎng)沙 410000
近年來(lái)政府提出加快政務(wù)信息系統(tǒng)整合,建設(shè)“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)實(shí)現(xiàn)“一站式”網(wǎng)上辦事、“一網(wǎng)通”公共服務(wù)、“智能化”科技決策、“數(shù)字化”資源共享。本文以湖南科技管理和科技服務(wù)行業(yè)的信息化需求為主線,制定賬戶數(shù)據(jù)信息標(biāo)準(zhǔn)和流程管理規(guī)范,建設(shè)賬戶管理中心和賬戶數(shù)據(jù)中心,對(duì)內(nèi)、對(duì)外提供統(tǒng)一的SSO登錄入口,支持多種認(rèn)證方式,為各應(yīng)用系統(tǒng)提供統(tǒng)一的安全管理服務(wù),為實(shí)現(xiàn)“一站式”網(wǎng)上辦事、“一網(wǎng)通”公共服務(wù)奠定基礎(chǔ),建設(shè)一套“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)。
單點(diǎn)登錄和Apereo CAS框架是實(shí)現(xiàn)“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)的關(guān)鍵技術(shù)。本小節(jié)重點(diǎn)介紹單點(diǎn)登錄、Apereo CAS框架的原理及認(rèn)證流程,并闡述相比較早期登錄技術(shù)的優(yōu)勢(shì)。
隨著信息化建設(shè)和網(wǎng)絡(luò)技術(shù)的發(fā)展,特別是Web應(yīng)用系統(tǒng)的流行,湖南省科學(xué)技術(shù)廳開(kāi)發(fā)了多個(gè)業(yè)務(wù)應(yīng)用系統(tǒng),分別是:電子政務(wù)OA系統(tǒng)、湖南省科技管理信息系統(tǒng)、湖南省科技報(bào)告共享服務(wù)系統(tǒng)、湖南省科研設(shè)施和科研儀器開(kāi)放共享服務(wù)平臺(tái)、湖南省科學(xué)技術(shù)獎(jiǎng)勵(lì)綜合業(yè)務(wù)管理平臺(tái)等。這些系統(tǒng)分別分散于各個(gè)建設(shè)單位,長(zhǎng)期以來(lái)積累的大量的業(yè)務(wù)數(shù)據(jù),方便了各個(gè)部門辦公,提升了一定的管理效率。同時(shí),因?yàn)檫@些系統(tǒng)在建設(shè)之初,缺乏統(tǒng)一的規(guī)劃管理,各個(gè)系統(tǒng)的數(shù)據(jù)存在相互不通的現(xiàn)象,給現(xiàn)在的科技管理、系統(tǒng)安全帶來(lái)了一定的困擾。
如果一個(gè)多業(yè)務(wù)系統(tǒng)應(yīng)用群中部署了單點(diǎn)登錄,則只要一次用戶身份驗(yàn)證成功,就可以獲取應(yīng)用群中其他應(yīng)用系統(tǒng)的訪問(wèn)控制權(quán)限,不需要重復(fù)登錄[1]。
單點(diǎn)登錄機(jī)制有用戶、web應(yīng)用和認(rèn)證中心三個(gè)角色,其中認(rèn)證中心只能有一個(gè),用戶和web應(yīng)用可以有多個(gè)。與傳統(tǒng)的單個(gè)系統(tǒng)登錄機(jī)制相比較,單點(diǎn)登錄需要一個(gè)統(tǒng)一的身份認(rèn)證中心作為唯一登錄入口來(lái)接收用戶提交的賬號(hào)、密碼信息,其 他web應(yīng)用間接地從認(rèn)證中心獲取授權(quán)。這種授權(quán)通過(guò)令牌機(jī)制來(lái)實(shí)現(xiàn),當(dāng)用戶的登錄信息認(rèn)證通過(guò)時(shí),認(rèn)證中心會(huì)創(chuàng)建令牌并將其傳遞到各個(gè)子系統(tǒng)。從而用戶可以被授權(quán)進(jìn)入各個(gè)子系統(tǒng)。
Apereo CAS是耶魯大學(xué)發(fā)起的一個(gè)開(kāi)源項(xiàng)目,能很好地實(shí)現(xiàn)單點(diǎn)登錄和統(tǒng)一身份認(rèn)證,其簡(jiǎn)單性、時(shí)效性、安全性優(yōu)勢(shì),從而被廣泛應(yīng)用。用戶通過(guò)CAS認(rèn)證,只需要一次登錄就可以在信任的應(yīng)用系統(tǒng)間互相訪問(wèn)。
Apereo CAS分為Apereo CAS服務(wù)器和Apereo CAS客戶端兩部分。
(1)Apereo CAS服務(wù)器
服務(wù)器端是獨(dú)立部署的web服務(wù)器,主要負(fù)責(zé)認(rèn)證用戶的身份信息,是單點(diǎn)登錄系統(tǒng)中唯一的認(rèn)證入口。用戶名、密碼等安全信息在Apereo CAS認(rèn)證服務(wù)器中稱為用戶憑證[1]。當(dāng)用戶身份認(rèn)證完成后,Apereo CAS服務(wù)器還負(fù)責(zé)認(rèn)證訪問(wèn)各個(gè)應(yīng)用系統(tǒng)所需要的各種票據(jù)[1]。
(2)Apereo CAS客戶端
圖1 Apereo CAS的認(rèn)證流程
Apereo CAS客戶端通常就是Web應(yīng)用服務(wù)器,Apereo CAS客戶端以庫(kù)文件形式嵌入到每個(gè)應(yīng)用系統(tǒng)中來(lái)實(shí)現(xiàn)和服務(wù)器端的交互認(rèn)證[2]。當(dāng)用戶訪問(wèn)時(shí),Apereo CAS客戶端不直接進(jìn)行身份認(rèn)證,而是將請(qǐng)求重定向到Apereo CAS服務(wù)器端進(jìn)行統(tǒng)一身份認(rèn)證。當(dāng)用戶通過(guò)瀏覽器訪問(wèn)Apereo CAS客戶端時(shí),客戶端會(huì)檢查http或https協(xié)議所攜帶的會(huì)話參數(shù)或是服務(wù)器會(huì)話中是否攜帶憑證ST(Service Ticket),如果都沒(méi)有,Apereo CAS客戶端就會(huì)重定向用戶的請(qǐng)求到 Apereo CAS服務(wù)器端并傳遞回調(diào)地址,Apereo CAS服務(wù)器端生成TGT(Ticket Granting Ticket)并放入緩存,生成TGC(Ticket Granting Cookie)并寫入客戶端瀏覽器,生成TGT簽發(fā)一個(gè)ST,根據(jù)傳遞的回調(diào)地址和ST,用戶再重新訪問(wèn)Apereo CAS客戶端,Apereo CAS客戶端根據(jù)ST和Apereo CAS服務(wù)器對(duì)用戶身份進(jìn)行認(rèn)證[3]。具體認(rèn)證流程如圖1所示。
湖南科技“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)基于Apereo CAS技術(shù),實(shí)現(xiàn)“一站式”網(wǎng)上辦事、“一網(wǎng)通”公共服務(wù)、“智能化”科技決策、“數(shù)字化”資源共享。主要建設(shè)內(nèi)容包括制定了賬戶信息數(shù)據(jù)標(biāo)準(zhǔn)和管理流程規(guī)范,建立統(tǒng)一賬戶管理中心支撐科技政務(wù)服務(wù)平臺(tái)和科技公共服務(wù)平臺(tái)實(shí)施。
圖2 統(tǒng)一身份認(rèn)證平臺(tái)邏輯架構(gòu)圖
技術(shù)架構(gòu)主要分為上下三層,分別為平臺(tái)層、應(yīng)用層、服務(wù)層。
(1)平臺(tái)層:主要是“互聯(lián)網(wǎng)+政務(wù)服務(wù)”一體化平臺(tái),平臺(tái)可以通過(guò)互聯(lián)網(wǎng)和政務(wù)外網(wǎng)連接到省級(jí)和國(guó)家級(jí)層面的政務(wù)平臺(tái),以協(xié)同服務(wù)模式實(shí)現(xiàn)對(duì)上級(jí)平臺(tái)的傳輸,并同步賬戶數(shù)據(jù)科技廳的“互聯(lián)網(wǎng)+政務(wù)服務(wù)”一體化平臺(tái)。
(2)應(yīng)用層:包括統(tǒng)一賬戶管理中心、統(tǒng)一賬戶數(shù)據(jù)中心、應(yīng)用門戶、統(tǒng)一身份認(rèn)證,以自然人(唯一標(biāo)識(shí):身份證號(hào))和法人(唯一標(biāo)識(shí):統(tǒng)一社會(huì)信用代碼)實(shí)現(xiàn)用戶注冊(cè)、審核、用戶信息查詢修改、密碼修改、用戶找回等功能。
(3)服務(wù)層:打通科技信息管理系統(tǒng)、瀟湘要素市場(chǎng)網(wǎng)、大儀網(wǎng)等接口的通道,實(shí)現(xiàn)賬戶數(shù)據(jù)的同步承接傳遞。
系統(tǒng)主要實(shí)現(xiàn)界面如圖3、圖4、圖5所示。
圖3 統(tǒng)一身份認(rèn)證中心
圖4 統(tǒng)一應(yīng)用門戶系統(tǒng)
圖5 統(tǒng)一賬戶管理系統(tǒng)
圖6 湖南科技“互聯(lián)網(wǎng)+政務(wù)平臺(tái)”部署結(jié)構(gòu)圖
序號(hào) 技術(shù)產(chǎn)品描述1操作系統(tǒng)操作系統(tǒng)名稱:Cetos操作系統(tǒng)版本:6.5默認(rèn)語(yǔ)言環(huán)境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務(wù)器軟件Apache Tomcat版本號(hào):7.0.107
序號(hào) 技術(shù)產(chǎn)品描述1操作系統(tǒng)操作系統(tǒng)名稱:Cetos操作系統(tǒng)版本:6.5默認(rèn)語(yǔ)言環(huán)境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務(wù)器軟件Apache Tomcat版本號(hào):7.0.107
序號(hào) 技術(shù)產(chǎn)品描述1操作系統(tǒng)操作系統(tǒng)名稱:Cetos操作系統(tǒng)版本:6.5默認(rèn)語(yǔ)言環(huán)境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服務(wù)器軟件Apache Tomcat版本號(hào):7.0.107
序號(hào) 技術(shù)產(chǎn)品 描述1 操作系統(tǒng) 操作系統(tǒng)名稱:Cetos操作系統(tǒng)版本:6.5默認(rèn)語(yǔ)言環(huán)境:UTF-8 2 數(shù)據(jù)庫(kù)MySQL Community Server 8.0.15字符集:utf8mb4排序規(guī)則:utf8mb4_general_ci 3 緩存軟件 Redis版本號(hào):6.0.10
(1)賬戶信息數(shù)據(jù)標(biāo)準(zhǔn)
制訂統(tǒng)一的賬戶信息數(shù)據(jù)標(biāo)準(zhǔn)是實(shí)現(xiàn)統(tǒng)一身份認(rèn)證服務(wù)平臺(tái)的前提,在統(tǒng)一的賬戶數(shù)據(jù)標(biāo)準(zhǔn)下,各應(yīng)用系統(tǒng)之間才能實(shí)現(xiàn)賬戶數(shù)據(jù)的互聯(lián)互通。湖南科技“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)參考《湖南省“互聯(lián)網(wǎng)+政務(wù)服務(wù)”一體化平臺(tái)統(tǒng)一身份認(rèn)證接入標(biāo)準(zhǔn)規(guī)范0523》,部分賬戶數(shù)據(jù)標(biāo)準(zhǔn)如下表:
表1 賬戶(自然人)數(shù)據(jù)標(biāo)準(zhǔn)
表2 組織機(jī)構(gòu)(法人)數(shù)據(jù)標(biāo)準(zhǔn)
續(xù)表
(2)OAuth2.0協(xié)議
OAuth(Open Authorization,開(kāi)放授權(quán))是為用戶資源的授權(quán)定義了一個(gè)安全、開(kāi)放及簡(jiǎn)單的標(biāo)準(zhǔn),第三方無(wú)須知道用戶的賬號(hào)及密碼,就可獲取到用戶的授權(quán)信息。協(xié)議特點(diǎn):
1)簡(jiǎn)單:不管是OAUTH服務(wù)提供者還是應(yīng)用開(kāi)發(fā)者,都很易于理解與使用;
2)安全:沒(méi)有涉及用戶密鑰等信息,更安全更靈活;
3)開(kāi)放:任何服務(wù)提供商都可以實(shí)現(xiàn)OAUTH,任何軟件開(kāi)發(fā)商都可以使用OAUTH;
湖南科技“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)為第三方應(yīng)用接入提供了符合OAuth2.0協(xié)議標(biāo)準(zhǔn)的認(rèn)證接口,包括authorize、accessToken、profile、logout服務(wù)。
①authorize 服務(wù)
功能說(shuō)明:獲取授權(quán)碼code。調(diào)用authorize服務(wù)地址,會(huì)轉(zhuǎn)到SSO認(rèn)證中心登錄頁(yè)面,輸入賬號(hào)口令提交登錄后,SSO認(rèn)證中心會(huì)轉(zhuǎn)到回調(diào)地址并帶上授權(quán)碼code。
服務(wù)地址:http://auth-server/oauth2.0/authorize。
請(qǐng)求方式:GET/POST。
參數(shù)說(shuō)明
參數(shù)名稱 必選 類型 說(shuō)明client_id true string 服務(wù)商提供的client_id redirect_uri true string 授權(quán)后的回調(diào)地址,需與注冊(cè)應(yīng)用里的回調(diào)地址一致response_type true string 此值固定為 code state false string 狀態(tài)參數(shù),原值返回
②accessToken 服務(wù)
功能說(shuō)明:獲取訪問(wèn)令牌token。
服務(wù)地址:http://auth-server/oauth2.0/accessToken。
請(qǐng)求方式:GET/POST。
參數(shù)說(shuō)明
參數(shù)名稱 必選 類型 說(shuō)明client_id true string 服務(wù)商提供的client_id client_secret true string 服務(wù)商提供的client_secret grant_type true string 默認(rèn)值authorization_code redirect_uri true string 授權(quán)后的回調(diào)地址,需與注冊(cè)應(yīng)用里的回調(diào)地址一致code true string authorize請(qǐng)求回來(lái)的code
③profile 服務(wù)
功能說(shuō)明:獲取SSO登錄賬戶信息。
服務(wù)地址:http://auth-server/oauth2.0/profile。
請(qǐng)求方式:GET/POST。
參數(shù)說(shuō)明
參數(shù)名稱 必選 類型 介紹access_token true string 第三部返回的access_token值
④logout 服務(wù)
功能說(shuō)明:?jiǎn)吸c(diǎn)退出。
服務(wù)地址:http://auth-server/logout。
請(qǐng)求方式:GET。
參數(shù)說(shuō)明
參數(shù)名稱 必選 類型 說(shuō)明client_id true string 服務(wù)商提供的client_id sessionId true string 會(huì)話ID,在profile服務(wù)可獲取
基于Apereo CAS的“互聯(lián)網(wǎng)+政務(wù)服務(wù)”平臺(tái)實(shí)現(xiàn)“一站式”網(wǎng)上辦事、“一網(wǎng)通”公共服務(wù)能力,解決了湖南科技行業(yè)管理單位中各應(yīng)用系統(tǒng)用戶分散管理的問(wèn)題,使用戶訪問(wèn)不同業(yè)務(wù)系統(tǒng)的方式更加便捷,同時(shí)減輕了信息管理部門對(duì)賬號(hào)和用戶管理的工作壓力,對(duì)湖南科技管理行業(yè)有著積極的現(xiàn)實(shí)意義。