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

?

利用開源軟件FreeRADIUS構(gòu)建圖書館統(tǒng)一認(rèn)證平臺(tái)的研究與實(shí)現(xiàn)

2016-05-14 06:31:50王政軍俞小怡金玉玲
現(xiàn)代情報(bào) 2016年5期
關(guān)鍵詞:自動(dòng)化系統(tǒng)圖書館

王政軍 俞小怡 金玉玲

〔摘要〕[目的/意義]解決圖書館眾多的信息系統(tǒng)使用不同的認(rèn)證方式給讀者和館員造成困惑和煩惱的問題,構(gòu)建圖書館統(tǒng)一認(rèn)證平臺(tái)達(dá)到讀者使用不同信息系統(tǒng)認(rèn)證方式的一致性。[方法/過程]基于匯文圖書館自動(dòng)化系統(tǒng)中的讀者信息,利用開源軟件FreeRADIUS構(gòu)建圖書館統(tǒng)一的認(rèn)證平臺(tái),以大連理工大學(xué)圖書館認(rèn)證平臺(tái)的實(shí)施方案為例,闡述系統(tǒng)的技術(shù)支撐原理、設(shè)計(jì)思路及具體實(shí)現(xiàn)方法。[結(jié)果/結(jié)論]通過具體實(shí)踐證明,基于FreeRADIUS的統(tǒng)一認(rèn)證方案能夠滿足圖書館集成各信息系統(tǒng)的認(rèn)證需求,提高信息系統(tǒng)的安全性和讀者使用的方便性。

〔關(guān)鍵詞〕FreeRADIUS;Linux;自動(dòng)化系統(tǒng);統(tǒng)一認(rèn)證;開源軟件;圖書館

隨著網(wǎng)絡(luò)信息化技術(shù)的不斷發(fā)展,圖書館引進(jìn)的和自主開發(fā)的為讀者服務(wù)的信息化系統(tǒng)逐年增多。信息化應(yīng)用涉及圖書業(yè)務(wù)管理、讀者服務(wù)等方面,為了更好地開展這些信息化服務(wù)在讀者中的普及應(yīng)用,圖書館還要為讀者提供基礎(chǔ)的網(wǎng)絡(luò)接入服務(wù)。由于各種信息化應(yīng)用系統(tǒng)由不同的組織者提供的,造成讀者擁有多個(gè)系統(tǒng)的賬號(hào)密碼而容易混亂,同時(shí)因?yàn)槿鄙俚慕y(tǒng)一的身份驗(yàn)證平臺(tái),管理員對(duì)于讀者身份的驗(yàn)證和授權(quán)管理繁瑣。

當(dāng)前計(jì)算機(jī)領(lǐng)域內(nèi)所使用的主流認(rèn)證技術(shù)有AD[1]、LDAP[2]、RADIUS等技術(shù)。AD和LADP提供的是目錄服務(wù),將用戶和組織信息存儲(chǔ)在其中以方便查找,也可以理解為一種特殊的數(shù)據(jù)庫,它們的數(shù)據(jù)庫結(jié)構(gòu)只方便用戶信息的查找,而做不到對(duì)用戶信息的靈活修改。如果圖書館使用AD或LDAP作為認(rèn)證服務(wù),就需要以AD或LDAP的存儲(chǔ)方式重新構(gòu)建讀者信息庫,而一般來說圖書館是以自動(dòng)化系統(tǒng)中的讀者信息作為核心的信息庫,讀者的用戶名密碼和服務(wù)級(jí)別都由自動(dòng)化系統(tǒng)來靈活管理,所以AD或LADP的認(rèn)證模式不適合圖書館的需求。

本文以大連理工大學(xué)圖書館為例,采用RADIUS技術(shù)構(gòu)建統(tǒng)一認(rèn)證平臺(tái),前端采用基于Linux系統(tǒng)的開源軟件FreeRADIUS實(shí)現(xiàn)統(tǒng)一認(rèn)證,后端RADIUS的數(shù)據(jù)庫采用關(guān)系型數(shù)據(jù)庫Oracle,以匯文自動(dòng)化系統(tǒng)中的讀者信息表構(gòu)建適合FreeRADIUS需要的用戶信息表視圖。該方案提供安全、方便、穩(wěn)定的統(tǒng)一授權(quán)和認(rèn)證平臺(tái),讀者使用圖書館自動(dòng)化系統(tǒng)中的賬號(hào)密碼就可以登錄所有集成該認(rèn)證平臺(tái)的信息系統(tǒng),讓讀者有多套賬號(hào)且容易忘記自己密碼的時(shí)代成為歷史。

5期利用開源軟件FreeRADIUS構(gòu)建圖書館統(tǒng)一認(rèn)證平臺(tái)的研究與實(shí)現(xiàn)May,2016Vol36No51RADIUS協(xié)議的介紹

RADIUS協(xié)議是專用的認(rèn)證管理協(xié)議,其全稱為Remote Authentication Dial-In User Service,該協(xié)議在IETF的RFC 2865中有詳細(xì)定義[3]。RADIUS是基于UDP的一種客戶機(jī)/服務(wù)器協(xié)議,它允許網(wǎng)絡(luò)訪問服務(wù)器(NAS)執(zhí)行對(duì)用戶的驗(yàn)證、授權(quán)和記賬。網(wǎng)絡(luò)訪問服務(wù)器通常是網(wǎng)絡(luò)設(shè)備(如路由器、交換機(jī)或無線AP等)或信息系統(tǒng)服務(wù)器(如圖書館中的遠(yuǎn)程訪問、自助服務(wù)系統(tǒng)、電子資源閱覽服務(wù)等)。RADIUS服務(wù)器通常是在UNIX或Windows服務(wù)器上運(yùn)行的一個(gè)監(jiān)護(hù)程序,本文所介紹的是在Linux操作系統(tǒng)上構(gòu)建FreeRADIUS認(rèn)證服務(wù)器。

RADIUS協(xié)議認(rèn)證機(jī)制靈活,可以采用PAP、CHAP或者Unix登錄認(rèn)證等多種方式。RADIUS的認(rèn)證過程有比較詳細(xì)的定義標(biāo)準(zhǔn),本文限于篇幅限制并不能詳細(xì)介紹協(xié)議內(nèi)容,但是為方便讀者對(duì)整個(gè)認(rèn)證系統(tǒng)結(jié)構(gòu)的理解,簡單介紹RADIUS的基本認(rèn)證過程。RADIUS協(xié)議的認(rèn)證過程如圖1所示。圖1RADIUS認(rèn)證流程示意圖[4]

對(duì)RADIUS認(rèn)證協(xié)議的理解首先要清楚認(rèn)證協(xié)議的3個(gè)對(duì)象:

(1)用戶客戶端:一般指提交用戶名密碼的PC客戶端,通常以WEB頁面的形式展示給用戶,如圖書館讀者所使用的網(wǎng)絡(luò)登錄驗(yàn)證頁面、校外訪問登錄頁面等;

(2)RADIUS Client:NAS(Network Access Server,網(wǎng)絡(luò)訪問服務(wù)器)被看成RADIUS的客戶端,接受用戶提交的用戶名密碼,并提交給RADIUS Server進(jìn)行身份驗(yàn)證,如圖書館所使用的網(wǎng)關(guān)設(shè)備、遠(yuǎn)程訪問服務(wù)器等;

(3)RADIUS Server:對(duì)用戶名密碼進(jìn)行合法性驗(yàn)證,如本文所構(gòu)建的FreeRADIUS就是一個(gè)RADIUS Server。

當(dāng)用戶通過本地計(jì)算機(jī)提交用戶名密碼請(qǐng)求登錄的時(shí)候,由接受登錄的RADIUS Client將用戶提供的認(rèn)證信息發(fā)送給指定的RADIUS Server,并根據(jù)RADIUS Server的回應(yīng)作出相應(yīng)的授權(quán)決定。RADIUS Server負(fù)責(zé)接收認(rèn)證請(qǐng)求并進(jìn)行認(rèn)證,然后將認(rèn)證結(jié)果(包括連接協(xié)議、端口信息、ACL等授權(quán)信息)發(fā)送回RADIUS Client,RADIUS Client根據(jù)授權(quán)信息開通用戶對(duì)資源的訪問。RADIUS Server和RADIUS Client之間傳遞的認(rèn)證信息用一個(gè)事先設(shè)置的口令進(jìn)行加密,防止敏感信息泄露。如果是網(wǎng)絡(luò)設(shè)備的認(rèn)證并開啟記賬服務(wù),RADIUS Client會(huì)向RADIUS Server發(fā)送一個(gè)連接開始的記賬信息包,其中包括用戶使用的連接種類、協(xié)議和其他自定義信息,當(dāng)用戶斷開連接后,RADIUS Client會(huì)向RADIUS Server發(fā)送一個(gè)連接結(jié)束的記賬信息包,RADIUS Server根據(jù)此信息進(jìn)行用戶記賬[5]。

2開源FreeRADIUS實(shí)施方法

本方案使用最新版本的FreeRADIUS 3010構(gòu)建RADIUS認(rèn)證服務(wù)器,操作系統(tǒng)使用的是CentOS7 X64版本,后臺(tái)數(shù)據(jù)庫使用的是和匯文圖書館自動(dòng)化系統(tǒng)一致的Oracle數(shù)據(jù)庫。

2Linux服務(wù)器的準(zhǔn)備

FreeRADIUS的代碼執(zhí)行效率非常高,官方介紹文檔給出每秒鐘可處理3 000次請(qǐng)求的水平,加之其運(yùn)行于Linux操作系統(tǒng)下,所以對(duì)硬件服務(wù)器的配置要求不高。普通單路CPU的服務(wù)器,在配置2G內(nèi)存、128G硬盤的情況下,可以滿足FreeRADIUS的處理需要。大連理工大學(xué)圖書館已經(jīng)采用虛擬化平臺(tái)很多年,幾乎所有的應(yīng)用服務(wù)器都構(gòu)建于虛擬化平臺(tái)之上。在虛擬化平臺(tái)上以CentOS7 X64的模板文件直接生成Linux操作系統(tǒng)即可。

無論是直接在物理機(jī)上直接安裝CentOS操作系統(tǒng),還是以虛擬化平臺(tái)生成的CentOS虛擬主機(jī),建議安裝配置中選擇最小化(Minimal)安裝模式,因?yàn)镕reeRADIUS只依賴于基本的操作系統(tǒng)功能即可,其他無用的服務(wù)容易造成服務(wù)器安全性降低、系統(tǒng)開銷增加、維護(hù)混亂等問題。

CentOS操作系統(tǒng)要進(jìn)行基本的配置。首先是進(jìn)行網(wǎng)絡(luò)配置,保證操作系統(tǒng)與需要認(rèn)證的服務(wù)器(RADIUS Client)網(wǎng)絡(luò)聯(lián)通,保證操作系統(tǒng)與后臺(tái)Oracle數(shù)據(jù)庫服務(wù)器的網(wǎng)絡(luò)聯(lián)通。其次要進(jìn)行CentOS操作系統(tǒng)的網(wǎng)絡(luò)安全特性的配置,CentOS操作系統(tǒng)默認(rèn)開啟安全控制體系SELinux和網(wǎng)絡(luò)防火墻IPtables Service,為防止SELinux會(huì)對(duì)FreeRADIUS的執(zhí)行產(chǎn)生拒絕的情況,需要關(guān)閉SELinux服務(wù)特性,在文件/etc/selinux/config中添加SELINUX=disable記錄即可。CentOS的默認(rèn)防火墻是屏蔽所有端口的訪問的,而FreeRADIUS服務(wù)需要開放UDP協(xié)議端口的1812和1813,所以需要修改CentOS操作系統(tǒng)的防火墻規(guī)則,通過編輯2編譯安裝支持Oracle數(shù)據(jù)庫的FreeRadius

本方案使用的FreeRADIUS版本是3010版本,可以從FreeRADIUS的官網(wǎng)(網(wǎng)站地址:http:∥freeradius.org/)上直接下載freeradius-server-3010.tar.gz文件,下載的文件解壓縮到指定的編譯工作目錄下,本文以目錄/opt/dev/freeradius-server-3010作為示例。

FreeRADIUS支持多種數(shù)據(jù)庫,默認(rèn)支持的是MYSQL數(shù)據(jù)庫的,所以在裝有MYSQL的主機(jī)上直接就可以連接數(shù)據(jù)庫工作,行業(yè)內(nèi)很多FreeRADIUS的案例使用的也是MYSQL數(shù)據(jù)庫,對(duì)于維護(hù)人員來說安裝、部署、管理方便。本方案由于是要和匯文自動(dòng)化系統(tǒng)中的用戶信息關(guān)聯(lián),所以FreeRADIUS使用的后臺(tái)數(shù)據(jù)庫為Oracle。當(dāng)前FreeRADIUS搭配Oracle的使用案例和資料比較少,本文作者也是在查詢大量資料和不斷的試驗(yàn)驗(yàn)證之后,才總結(jié)出成功的實(shí)施方案經(jīng)驗(yàn)。

很多的系統(tǒng)實(shí)施人員為使FreeRADIUS能夠支持Oracle順利編譯通過,先要在Linux下安裝完整的Oracle標(biāo)準(zhǔn)客戶端,而該軟件的安裝涉及到的技術(shù)點(diǎn)特別多,往往在實(shí)施過程中因?qū)映霾桓F的問題而難以繼續(xù)或軟件安裝后功能不全。其實(shí)查過Oracle的官方說明文檔后發(fā)現(xiàn),Oracle發(fā)布了精簡客戶端Instant Client及開發(fā)支持包SDK文件,精簡客戶端的部署只需將其釋放指定目錄并被LDLIBRARYPATH動(dòng)態(tài)鏈接庫目錄包含即可。

3FreeRADIUS的設(shè)置

初始安裝的FreeRadius只支持本地test賬號(hào)的驗(yàn)證,為使其適合圖書館各種信息系統(tǒng)的認(rèn)證需求,還需要為其進(jìn)行多種擴(kuò)展化的設(shè)置。首先要準(zhǔn)備FreeRADIUS的后臺(tái)Oracle數(shù)據(jù)庫,本方案是在匯文的Oracle數(shù)據(jù)中創(chuàng)建新的RADIUS數(shù)據(jù)庫方案。Oracle的管理工具Sql/Plus可對(duì)Oracle進(jìn)行命令行的管理維護(hù),RADIUS數(shù)據(jù)庫方案的創(chuàng)建命令如下,可以將這些代碼放在一個(gè)sql文件中,然后在Sql/Plus下執(zhí)行即可生成RADIUS數(shù)據(jù)庫方案。

在管理工具Sql/Plus中執(zhí)行/usr/local/radius/etc/raddb/mods-config/sql/main/oracle目錄下的schema.sql文件生成FreeRADIUS所需要的數(shù)據(jù)表結(jié)構(gòu)。數(shù)據(jù)庫中主要的表有radcheck(用戶檢查信息表)、radreply(用戶回復(fù)信息表)、Radgroupcheck(用戶組檢查信息表)、radgroupreply(用戶組檢查信息表)、Radusergroup(用戶和組關(guān)系表)、radacct(計(jì)費(fèi)情況表)、radpostauth(認(rèn)證后處理信息)等。本文作者所使用的FreeRADIUS 3010版本的schema.sql文件有錯(cuò)誤,在該文件的190行缺少符號(hào)′/′而導(dǎo)致該sql文件執(zhí)行錯(cuò)誤,可能是制作該sql文件的作者的筆誤,但是作為一個(gè)成熟的軟件發(fā)布版本有這樣的低級(jí)錯(cuò)誤,讓本文作者確實(shí)不敢茍同,也許是因?yàn)镕reeRADIUS搭配Oracle的案例太少而很少人提出這樣明顯的錯(cuò)誤?如果是這樣的話更能體現(xiàn)出本篇論文的價(jià)值所在。

為了能夠使FreeRADIUS使用Oracle數(shù)據(jù)庫,需要設(shè)置FreeRADIUS支持通過sql認(rèn)證的功能,在啟用模塊功能的/usr/local/radius/etc/raddb/mods-enabled/目錄下,通過建立已有模塊/usr/local/radius/etc/raddb/mods-available/sql的對(duì)應(yīng)文件軟鏈接來實(shí)現(xiàn)。編輯該sql

4利用匯文Oracle數(shù)據(jù)庫讀者信息

FreeRADIUS在數(shù)據(jù)庫中的賬戶信息是radcheck表中的記錄,而本文所搭建的圖書館統(tǒng)一認(rèn)證平臺(tái)使用的認(rèn)證用戶信息來自于匯文自動(dòng)化系統(tǒng)中的用戶表(LIB3000.reader),該數(shù)據(jù)表包含讀者信息的證件號(hào)和被MD5加密的密碼字段。比較RADIUS數(shù)據(jù)庫方案的radcheck表和LIB3000方案中的reader表的結(jié)構(gòu),利用reader表可以在RADIUS方案中構(gòu)建radcheck視圖代替原有的radcheck表,將radcheck視圖中的用戶信息映射到reader下的記錄,實(shí)現(xiàn)使用reader表中的讀者信息進(jìn)行FreeRADIUS的認(rèn)證。本文作者所使用的radcheck視圖的創(chuàng)建代碼如下:

由于radcheck的視圖信息來自于匯文數(shù)據(jù)庫中的讀者信息表(reader),所以讀者在使用信息系統(tǒng)時(shí)的認(rèn)證用戶名密碼與匯文自動(dòng)化系統(tǒng)中的保持一致。管理人員不需要在統(tǒng)一認(rèn)證平臺(tái)FreeRADIUS服務(wù)端維護(hù)讀者認(rèn)證信息,所有讀者信息的創(chuàng)建、修改、權(quán)限劃分、注銷等通過匯文自動(dòng)化系統(tǒng)集中維護(hù),讀者也可以通過匯文OPAC終端查看修改自己的認(rèn)證信息狀態(tài)。

3系統(tǒng)認(rèn)證集成及效果

基于FreeRADIUS的統(tǒng)一認(rèn)證平臺(tái)已經(jīng)在大連理工大學(xué)圖書館運(yùn)行多年,圖書館所引進(jìn)的信息系統(tǒng)要盡可能的與其集成認(rèn)證。目前網(wǎng)絡(luò)接入認(rèn)證、遠(yuǎn)程訪問系統(tǒng)認(rèn)證、自助服務(wù)認(rèn)證以及其他的電子資源認(rèn)證都能夠利用統(tǒng)一認(rèn)證平臺(tái)對(duì)讀者進(jìn)行身份驗(yàn)證。

3網(wǎng)絡(luò)接入認(rèn)證集成

大連理工大學(xué)圖書館網(wǎng)絡(luò)接入認(rèn)證有兩種方式,一種是基于網(wǎng)絡(luò)交換機(jī)的8021X RADIUS認(rèn)證,使用有線網(wǎng)絡(luò)接入的人員采用此種方式;另一種是基于網(wǎng)關(guān)的Web Portal Radius認(rèn)證方式,使用無線終端或臨時(shí)接入網(wǎng)絡(luò)的人員采用此種方式。

8021X RADIUS認(rèn)證的部署需要開啟交換機(jī)的8021X的認(rèn)證功能,并且在交換機(jī)上指定為其提供RADIUS Server的服務(wù)器信息。本方案使用的網(wǎng)絡(luò)交換機(jī)是博科以太網(wǎng)接入交換機(jī),我館自主開發(fā)的8021X的認(rèn)證客戶端,其登錄和配置界面如圖2所示。圖28011X RADIUS認(rèn)證客戶端及配置界面

Web Portal Radius需要網(wǎng)關(guān)設(shè)備具備RADIUS認(rèn)證服務(wù)的功能。本方案采用的是深信服AC1700網(wǎng)關(guān)系統(tǒng),該設(shè)備利用WEB重定向技術(shù)驗(yàn)證用戶名和密碼,后臺(tái)驗(yàn)證方式通過外部FreeRADIUS認(rèn)證服務(wù)器審查用戶的合法性。方案的效果如圖3所示。

2遠(yuǎn)程訪問EZProxy集成

EZProxy是被廣泛使用的圖書館遠(yuǎn)程訪問系統(tǒng),讀者經(jīng)過身份認(rèn)證后,通過該系統(tǒng)可以訪問圖書館所購買的電子資源。EZProxy支持標(biāo)準(zhǔn)的RADIUS認(rèn)證協(xié)議,本方案是在其配置文件user.txt文件中加入∶∶radius=192.168.10.154,secret=ezproxysharesecret,利用FreeRADIUS統(tǒng)一認(rèn)證平臺(tái)進(jìn)行用戶身份驗(yàn)證。大連理工大學(xué)圖書館的EZProxy登錄頁面的效果如圖4所示。

33自助服務(wù)的集成

圖書館的自助服務(wù)系統(tǒng)越來越多,如大連理工大學(xué)圖書館有自助借還、自助上機(jī)、自助文印、自助超期罰款、自助研究間系統(tǒng)等。這些系統(tǒng)原來都是系統(tǒng)本地的用戶名密碼認(rèn)證或者通過匯文一卡通等系統(tǒng)定制接口的方式認(rèn)證,導(dǎo)致讀者使用的認(rèn)證信息經(jīng)常混亂以及工作人員系統(tǒng)維護(hù)困難。通過與RADIUS統(tǒng)一認(rèn)證平臺(tái)整合之后,所有讀者的圖3Web Portal的FreeRADIUS配置、讀者認(rèn)證界面、后臺(tái)監(jiān)控界面

圖4EZProxy的登錄界面

用戶名密碼都與匯文自動(dòng)化系統(tǒng)中的信息一致,提高讀者對(duì)于自助系統(tǒng)使用的便利性。

4其他資源的集成

目前數(shù)字資源廠商為使自己的平臺(tái)適應(yīng)最廣泛用戶群的需求,普遍支持標(biāo)準(zhǔn)的RADIUS認(rèn)證協(xié)議,圖書館構(gòu)建統(tǒng)一的標(biāo)準(zhǔn)化RADIUS認(rèn)證平臺(tái)也方便數(shù)字資源數(shù)據(jù)庫平臺(tái)的集成。本方案使用的FreeRADIUS認(rèn)證系統(tǒng)符合RADIUS的標(biāo)準(zhǔn)協(xié)議,利用圖書館自動(dòng)化系統(tǒng)系統(tǒng)中的用戶信息作為認(rèn)證信息,讀者對(duì)數(shù)字資源的訪問只需要通過與圖書館自動(dòng)化系統(tǒng)一致的用戶名密碼進(jìn)行身

猜你喜歡
自動(dòng)化系統(tǒng)圖書館
圖書館
油氣管道儀表與自動(dòng)化系統(tǒng)項(xiàng)目管理模式探討
飛躍圖書館
淺談電力調(diào)度自動(dòng)化系統(tǒng)的應(yīng)用
電能計(jì)量自動(dòng)化系統(tǒng)運(yùn)行監(jiān)控管理技術(shù)研究
探究數(shù)字化自動(dòng)系統(tǒng)出現(xiàn)的主要問題及處理
去圖書館
新巴尔虎左旗| 泽普县| 昆明市| 大兴区| 迁安市| 新疆| 康定县| 贞丰县| 乌鲁木齐县| 武平县| 北票市| 绵阳市| 鲜城| 紫金县| 西城区| 临江市| 霍林郭勒市| 铜梁县| 芦山县| 新密市| 南汇区| 灵丘县| 磴口县| 京山县| 长乐市| 化德县| 两当县| 海口市| 洮南市| 大荔县| 芜湖市| 乐都县| 崇左市| 馆陶县| 弥渡县| 平乡县| 湖州市| 井研县| 祥云县| 宣汉县| 合川市|