国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一個簡易單點登錄系統(tǒng)的構建與實現(xiàn)

2013-10-10 07:32黃偉亮
關鍵詞:單點開源證書

劉 輝,黃偉亮

(河南機電職業(yè)學院 信息工程系,鄭州 451191)

0 引言

單點登錄是目前比較流行的對多種系統(tǒng)業(yè)務進行集成與整合的解決方案之一。所謂單點登錄(Single Sign On,簡寫為SSO),即用戶只需在登錄時提供一次用戶認證信息,通過認證以后,無需再重復登錄便可訪問其他各子系統(tǒng)應用。IBM對SSO有一個形象的解釋,即“單點登錄、全網(wǎng)漫游”[1]。對現(xiàn)有的單點登錄實現(xiàn)案例及文獻[2-4]綜合分析顯示,對已有系統(tǒng)進行單點登錄改造、整合,或基于SSO重新規(guī)劃設計所有的網(wǎng)絡應用,既耗時又耗力,需要付出巨大的代價。雖然市場上已出現(xiàn)了多種專門的SSO商業(yè)軟件,但價格以及對已有的網(wǎng)絡應用支持是否完善等問題,往往使用戶望而卻步。本文嘗試以開源軟件為基礎,構建一個簡易的單點登錄系統(tǒng),來解決局域網(wǎng)中多個應用系統(tǒng)的用戶統(tǒng)一身份認證和集中管理問題。

1 應用技術分析

目前,實現(xiàn)單點登錄的開源軟件主要有OpenSSO、JOSSO、CAS等幾種。其中OpenSSO是由Sun公司支持的一個開源的SSO項目,但自從Sun被甲骨文(Oracle)收購,該項目已被關閉并凍結下一步開發(fā)[5];JOSSO(Java Open Single Sign-On)也是一個開源的J2EE-based的SSO(單點登錄)基礎結構,它具有跨平臺性,允許整合Java和非Java應用程序[6];CAS(Central Authentication Server)是Yale(耶魯)大學發(fā)起的一個開源項目,旨在為Web應用系統(tǒng)提供一種可靠的單點登錄方案,它提供了一個企業(yè)級單點登錄解決方案,通過獨立部署CAS Server及在客戶端比如 Java、.Net、PHP、Perl、Apache、uPortal、Ruby 等 Web 應 用 中 加入 CAS Client的方式實現(xiàn)統(tǒng)一認證[7]。CAS實現(xiàn)單點登錄的機制見圖1。

圖1 CAS實現(xiàn)單點登錄的機制

當用戶通過客戶端的Web瀏覽器訪問受保護資源時,嵌入客戶端的CAS Client將截取并分析該http請求中是否包含合法的Service Ticket,如果有,則說明當前用戶已經(jīng)登錄,允許訪問資源;否則,將該http請求重定向到CAS Server登錄地址,強制對用戶進行認證。在這個過程中,CAS Server主要負責對用戶的認證工作。由于CAS具有設計理念先進、體系結構合理、配置簡單、客戶端支持廣泛、技術成熟等優(yōu)點,本文選用該軟件構建單點登錄系統(tǒng)。

CAS協(xié)議僅僅為基于Web的應用提供了用戶信息的認證服務,在實際應用中,CAS Server的認證接口會處理登錄用戶的憑證(Credentidals)信息,最常見的是用戶名/密碼,CAS Server可能需要到數(shù)據(jù)庫檢索一條用戶帳號信息,也可能在XML文件中檢索用戶名/密碼,還可能通過 LDAP Server獲取等。出于簡單、易于再開發(fā)考慮,本文選用的是開源數(shù)據(jù)庫Mysql來集中保存用戶信息,并對用戶信息進行統(tǒng)一管理。

2 系統(tǒng)結構與流程

根據(jù)上述分析,該系統(tǒng)主要由三部分組成:統(tǒng)一用戶管理、CAS統(tǒng)一認證服務、各種Web應用(根據(jù)需要可集成多個系統(tǒng))。系統(tǒng)總體結構如圖2所示。

圖2 系統(tǒng)總體結構

統(tǒng)一用戶管理作為該系統(tǒng)獨立的一個應用模塊,主要負責用戶的添加、刪除、更新等管理。

統(tǒng)一認證即當用戶第一次訪問不同的Web應用資源時,將被重定向到CAS統(tǒng)一認證服務器,根據(jù)數(shù)據(jù)庫中用戶與角色的信息憑證,對其進行檢驗,如果認證通過,則轉向相應的Web應用資源。

3 系統(tǒng)實現(xiàn)

根據(jù)上述分析,本文將基于J2EE構建該單點登錄系統(tǒng),采用Tomcat作為Web服務器,結合CAS Server配置統(tǒng)一認證服務,使用數(shù)據(jù)庫Mysql來存儲用戶與角色信息,并進行相應的應用程序開發(fā),以實現(xiàn)用戶添加、刪除、更新等管理,至于其他的客戶端Web應用,可根據(jù)需要自行選擇不同的系統(tǒng)結合CAS Client進行配置。

3.1 前期工作

首先,根據(jù)服務器配置,正確安裝JRE、Tomcat與 Mysql,本 文 使 用 的 是 JRE1.6.0_10+Tomcat 6.0.36+Mysql5.6,然后輸入部分用戶信息到數(shù)據(jù)庫中,以用于測試。

另外,CAS需要SSL(安全套接層協(xié)議)才能正常工作。SSL提供了一種在應用服務器(如Web、Telenet、FTP等)和客戶端之間提供數(shù)據(jù)安全性分層的機制,它為TCP/IP連接提供數(shù)據(jù)加密、服務器認證、消息完整性以及可選的客戶機認證。通過在Web服務器端配置專業(yè)的CA機構頒發(fā)的證書,實現(xiàn)SSL通信。作為一個局部的應用系統(tǒng),本文采用J2SE自帶的keytool工具,自己生成一個證書。

第一步:生成服務器證書。參考命令格式如下:

keytool-genkey-alias tomcat-keyalg RSA-keysize 1024-keypass changeit-validity 365-storepass changeit-keystore d:ssoserver.keystore

第二步:將證書導入到JDK的證書信任庫中。

導入過程包括兩個操作,首先是導出證書,然后將其導入到證書信任庫,參考命令格式如下:

keytool-export-trustcacerts-alias tomcat-keystore d:ssoserver.keystore-file d:ssoserver.crtstorepass changeit

keytool-import-trustcacerts-alias tomcat-file d:ssoserver.crt-keystore %JAVA_HOME%/jre/lib/security/cacerts-storepass changeit

第三步:將證書應用到Web服務器Tomcat,配置其SSL服務,需要修改server.xml中Connector標簽為如下內容:

maxThreads="150"minSpareThreads="25"maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100"scheme="https"secure="true"

clientAuth="false"sslProtocol="TLS"keystoreFile="d:ssoserver.keystore" eystorePass="changeit"/>

3.2 CAS Server應用配置

統(tǒng)一認證服務的配置相對簡單,只需將CAS的相應文件包放到Tomcat服務器的Web應用文件夾即可。

訪 問 http://www.ja-sig.org/products/cas/downloads/index.html,下載 CAS 的最新版本。筆者使用的版本是 cas-server-3.4.12。從 CAS 壓縮包中找到cas-server-webapp-3.4.12.war文件(在 modules文件夾下),將其復制到Tomcat服務器的webapps目錄下,重命名為cas;重新啟動Tomcat后,在瀏覽器地址欄中輸入:https://localhost:8443/cas。如果能打開登錄頁面,則表示CAS應用可以正常啟動。之后,根據(jù)應用需要,可對用戶登錄界面進行簡單修改,其界面的相應設計文件保存在目錄cas/webapp/WEB-INF/view/jsp/default/u及/cas/webapp/css中。

3.3 M ysql數(shù)據(jù)庫的鏈接與配置

在Mysql數(shù)據(jù)庫中建立一個用戶(User)表,用于存放用戶的登錄信息。表結構如表1所示,包括用戶編號、登錄名稱、登錄密碼、用戶名稱、用戶描述等。

表1 用戶(User)表結構

然后,通過以下步驟配置CAS,應用Mysql數(shù)據(jù)庫進行用戶的身份驗證。

第一步:復制以下兩個文件到CAS/WEB_INF/lib目錄下。

cas-server-support-jdbc-3.1.12.jar;mysql-connector-java-5.0.8-bin.jar

第二步:配置CAS/WEB-INF/目錄下的deployerConfigContext.xml文件,在該文件中有兩處需要修改。

(1)增加數(shù)據(jù)源

(2)改變認證方式

修改為:

3.4 CAS Client客戶端配置

對各種Web應用進行統(tǒng)一認證,是通過將CAS Client加入到客戶端模塊實現(xiàn)的。下面以基于java的Web應用進行說明。

首先,從 http://www.ja-sig.org/downloads/casclients/CAS Client下載CAS Client的最新版本,比如本文使用的是 cas-client-3.2.1,將壓縮包中modules目錄下的 cas-client-core-3.2.1.jar文件復制到所發(fā)布Web應用的WEB-INF/lib下。然后,在客戶端Web應用中修改WEB-INF/web.xml文件,在其中添加應用過濾器,示例如下:

在多種Web應用客戶端進行上述類似配置后,當用戶通過瀏覽器第一次訪問CAS保護的Web應用時,該http請求就將會被重定向到CAS統(tǒng)一認證服務器(即 https://localhost:8443/cas),要求輸入用戶名與密碼進行認證,從而實現(xiàn)了簡單的單點登錄與認證。

4 小結

本文基于開源軟件所實現(xiàn)的簡易單點登錄系統(tǒng),完成了用戶的集中管理與統(tǒng)一的身份認證,使得用戶輸入一次用戶名和密碼便可訪問多個Web應用,從而提高了用戶使用系統(tǒng)的效率,改善了用戶體驗。但是,單點登錄(SSO)的部署本身就是一把雙刃劍,如果配置不合理反而會使系統(tǒng)的安全性降低。本文所提出的這個系統(tǒng),在實際應用中還有待于進一步改進,以提高系統(tǒng)的整體安全性。

[1]肖菁.WebSphere環(huán)境下的SSO實現(xiàn)之——SSO實現(xiàn)技術準備[EB/OL].(2003-08-01)[2013-05-26].http://www.i-bm.com/developerworks/cn/websphere/library/techarticles/xiaojing/SSOprepare/SSOprepare.htm l.

[2]李凡,王流一.一種基于票據(jù)的單點登錄協(xié)議設計與實現(xiàn)[J].計算機工程與科學,2012(2).

[3]鄭偉,王加陽.異構應用的單點登錄方法[J].軟件導刊,2010(7).

[4]金永勤.在應用整合中單點登錄解決方案的研究[J].計算機與現(xiàn)代化,2007(7).

[5]開源中國社區(qū).opensso-單點登錄框架[EB/OL].(2008-09-24)[2013-05-26].http://www.oschina.net/p/opensso.

[6]開源中國社區(qū).JOSSO-單點登錄框架 -開源中國OSChina.NET[EB/OL].(2008-09-24)[2013-05-26].http://www.oschina.net/p/josso/simila-r_projects.

[7]張濤,王秉坤.使用CAS在Tomcat中實現(xiàn)單點登錄[EB/OL].(2008-04-10)[2013-05-26].http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/.

猜你喜歡
單點開源證書
WJCI 收錄證書
CSCD收錄證書
收錄證書
歷元間載波相位差分的GPS/BDS精密單點測速算法
收錄證書
超薄異型坯連鑄機非平衡單點澆鑄實踐與分析
五毛錢能買多少頭牛
數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點發(fā)射的效果比較
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0