999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CAS的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)

2016-12-15 02:47:20楊旭東
軟件 2016年11期
關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶信息

趙 晉,楊旭東

(北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100876)

基于CAS的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)

趙 晉,楊旭東

(北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100876)

隨著互聯(lián)網(wǎng)的發(fā)展,用戶經(jīng)常需要訪問(wèn)不同系統(tǒng),這就導(dǎo)致用戶需要頻繁登錄。單點(diǎn)登錄就是為解決上述問(wèn)題而提出的一種技術(shù),它可以使用戶只登錄某個(gè)系統(tǒng)一次即可訪問(wèn)所有相關(guān)的應(yīng)用系統(tǒng)。本文在分析了CAS協(xié)議的基本原理后,實(shí)現(xiàn)了基于CAS的單點(diǎn)登錄系統(tǒng),為CAS服務(wù)器端添加了訪問(wèn)權(quán)限控制、緩存層和基于Netty的用戶管理系統(tǒng)的功能。

軟件工程;單點(diǎn)登錄;CAS;統(tǒng)一認(rèn)證

本文著錄格式:趙晉,楊旭東. 基于CAS的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)[J]. 軟件,2016,37(11):118-124

0 引言

隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)中提供服務(wù)的增多,人們?nèi)粘I钏枰男畔①Y源也隨之增多。在這種條件下,用戶經(jīng)常需要訪問(wèn)一個(gè)內(nèi)部網(wǎng)絡(luò)中的多種不同子系統(tǒng)中的資源,由于不同系統(tǒng)的軟硬件平臺(tái)在初期設(shè)計(jì)時(shí)沒(méi)有統(tǒng)一的訪問(wèn)標(biāo)準(zhǔn)和安全策略,導(dǎo)致用戶在訪問(wèn)各個(gè)子系統(tǒng)時(shí)都需要進(jìn)行獨(dú)立的身份認(rèn)證。這就要求用戶需要記住自己在不同系統(tǒng)的身份標(biāo)志,例如用戶名和訪問(wèn)密碼等,并且當(dāng)需要訪問(wèn)多個(gè)系統(tǒng)時(shí),需要反復(fù)驗(yàn)證用戶身份,這無(wú)疑會(huì)對(duì)用戶體驗(yàn)造成影響,并且降低了各系統(tǒng)的易用性。為了應(yīng)對(duì)以上問(wèn)題,產(chǎn)生了單點(diǎn)登錄(Single sign-on,簡(jiǎn)稱(chēng)為SSO)系統(tǒng)。

單點(diǎn)登錄的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)[1]。統(tǒng)一認(rèn)證是單點(diǎn)登錄的一種解決方案,統(tǒng)一認(rèn)證的主要思路就是由唯一一個(gè)統(tǒng)一認(rèn)證系統(tǒng)接管各個(gè)不同系統(tǒng)的身份認(rèn)證模塊,各應(yīng)用系統(tǒng)只需要通過(guò)統(tǒng)一認(rèn)證系統(tǒng)所系統(tǒng)的信息即可實(shí)現(xiàn)用戶身份的驗(yàn)證[2]。

JASIG-CAS本身為Yale大學(xué)開(kāi)發(fā),后轉(zhuǎn)入JASIG項(xiàng)目。它是一個(gè)單點(diǎn)登錄系統(tǒng)的框架,它基于統(tǒng)一認(rèn)證,并且支持跨域訪問(wèn)。同時(shí)本身即可作為一個(gè)獨(dú)立的WEB應(yīng)用程序運(yùn)行使用,內(nèi)部使用Spring Web Flow和Spring MVC框架實(shí)現(xiàn)。它包括一個(gè)JAVA開(kāi)源服務(wù)器組件,并提供多種官方和非官方的客戶端組件,官方的客戶端組件包括JAVA、.NET、PHP和Apache。并且CAS支持多種協(xié)議和存儲(chǔ)后端,比如自己獨(dú)有的CAS協(xié)議、OpenID協(xié)議、SAML協(xié)議、OAuth協(xié)議等,存儲(chǔ)后端有數(shù)據(jù)庫(kù)、LDAP、Active Directory等。并且CAS在全球有很多大學(xué)和企業(yè)在使用,認(rèn)可度較高。

本文使用CAS框架來(lái)實(shí)現(xiàn)單點(diǎn)登錄系統(tǒng),并完善了單點(diǎn)登錄系統(tǒng),使其增加了粗細(xì)兩種用戶訪問(wèn)

控制機(jī)制、緩存層和基于Netty 的用戶管理系統(tǒng),用戶管理系統(tǒng)包含注冊(cè)服務(wù)器、管理服務(wù)器和基于Netty的WebSocket服務(wù)器,使得管理者無(wú)需刷新用戶管理系統(tǒng)頁(yè)面即可獲取到用戶信息。

粗粒度訪問(wèn)控制機(jī)制使用Mybatis框架實(shí)現(xiàn),細(xì)粒度訪問(wèn)控制機(jī)制使用shiro實(shí)現(xiàn),緩存層使用了Redis數(shù)據(jù)庫(kù),用戶管理系統(tǒng)使用了Netty作為WebSocket服務(wù)器,用于轉(zhuǎn)發(fā)和推送消息,數(shù)據(jù)庫(kù)使用了MySQL。

1 本文采用的方案

先介紹一下CAS框架的主要協(xié)議,即CAS協(xié)議。

CAS協(xié)議是JASIG-CAS特有的基于票據(jù)的協(xié)議(ticket-based protocol),它實(shí)現(xiàn)簡(jiǎn)單而且功能強(qiáng)大。它涉及到一個(gè)或多個(gè)CAS客戶端和一個(gè)CAS服務(wù)器。其中CAS服務(wù)器負(fù)責(zé)驗(yàn)證用戶身份并授予訪問(wèn)權(quán)限。CAS客戶端的作用是保護(hù)Web應(yīng)用并從CAS服務(wù)器獲取已授予訪問(wèn)權(quán)限的用戶身份。

TGT(Ticket Granting Ticket)票據(jù)被存儲(chǔ)于名為CASTGC的cookie中,它是已通過(guò)CAS服務(wù)器身份認(rèn)證的用戶標(biāo)志。ST (Service Ticket) 票據(jù)通過(guò)HTTPS協(xié)議的Get方式傳輸,即URL傳參,它是用戶訪問(wèn)特定Web應(yīng)用的許可標(biāo)志 。

CAS協(xié)議實(shí)現(xiàn)原理如下圖1所示:

用戶第一次訪問(wèn)應(yīng)用1時(shí)的步驟:

1. 用戶通過(guò)瀏覽器向受到CAS客戶端保護(hù)的Web應(yīng)用1發(fā)出請(qǐng)求。

2. CAS客戶端檢測(cè)到這次訪問(wèn)還未被授權(quán),即沒(méi)有在cookie中檢測(cè)到session id,之后將此次請(qǐng)求轉(zhuǎn)發(fā)到CAS服務(wù)器。

圖1 用戶首次訪問(wèn)應(yīng)用1的過(guò)程Fig.1 The process of user’s first visit of application 1.

3. CAS服務(wù)器檢測(cè)到用戶cookie中沒(méi)有TGT票據(jù)信息,所以向用戶瀏覽器返回登錄界面。

4. 用戶輸入身份信息,并利用POST方式將信息發(fā)送到CAS服務(wù)器。

5. CAS服務(wù)器驗(yàn)證身份信息,驗(yàn)證通過(guò)后,創(chuàng)建TGT票據(jù)并將TGT票據(jù)保存到用戶cookie中。之后創(chuàng)建ST票據(jù),并將ST票據(jù)信息寫(xiě)入到用戶瀏覽器即將轉(zhuǎn)發(fā)的URL的參數(shù)中。該URL指向之前用戶請(qǐng)求訪問(wèn)的受CAS客戶端保護(hù)的Web應(yīng)用1。

6. CAS客戶端向CAS服務(wù)器發(fā)出校驗(yàn)ST票據(jù)的請(qǐng)求。

7. CAS服務(wù)器驗(yàn)證ST票據(jù)信息成功,之后創(chuàng)建并返回一個(gè)包含成功信息和其他所需參數(shù)的XML文檔給受CAS客戶端保護(hù)的Web應(yīng)用1。

8. CAS客戶端建立session,并將session id寫(xiě)入到用戶cookie中。最后將需要轉(zhuǎn)發(fā)的去除了ST票據(jù)信息的URL返回給用戶瀏覽器。該URL即為用戶最初請(qǐng)求的URL。

圖2 用戶再次訪問(wèn)應(yīng)用1的過(guò)程Fig.2 The process of user’s second visit of application 1.

圖3 用戶訪問(wèn)應(yīng)用2時(shí)的過(guò)程Fig.3 The process of user’s first visit of application 2

9. 用戶瀏覽器再次請(qǐng)求訪問(wèn)Web應(yīng)用1。

10. CAS客戶端在cookie中檢測(cè)到session id,允許訪問(wèn)。

11. Web應(yīng)用1返回資源給用戶瀏覽器,如圖2所示。

用戶再次訪問(wèn)應(yīng)用1時(shí)的步驟:

1. 用戶通過(guò)瀏覽器向受到CAS客戶端保護(hù)的Web應(yīng)用1發(fā)出請(qǐng)求。

2. CAS客戶端在cookie中檢測(cè)到session id,允許訪問(wèn)。

3. Web應(yīng)用1返回資源給用戶瀏覽器,如圖3所示。

用戶接下來(lái)訪問(wèn)應(yīng)用2時(shí)的步驟:

1. 用戶通過(guò)瀏覽器向受到CAS客戶端保護(hù)的Web應(yīng)用2發(fā)出請(qǐng)求。

2. CAS客戶端檢測(cè)到這次訪問(wèn)還未被授權(quán),即沒(méi)有在cookie中檢測(cè)到session id,之后將此次請(qǐng)求轉(zhuǎn)發(fā)到CAS服務(wù)器。

3. CAS服務(wù)器在用戶cookie中發(fā)現(xiàn)TGT票據(jù)信息,驗(yàn)證TGT信息成功后,創(chuàng)建ST票據(jù),并將ST票據(jù)信息寫(xiě)入到用戶瀏覽器即將轉(zhuǎn)發(fā)的URL的參數(shù)中。該URL指向之前用戶請(qǐng)求訪問(wèn)的受CAS客戶端保護(hù)的Web應(yīng)用2。

4. CAS客戶端向CAS服務(wù)器發(fā)出校驗(yàn)ST票據(jù)的請(qǐng)求。

5. CAS服務(wù)器驗(yàn)證ST票據(jù)信息成功,之后創(chuàng)建并返回一個(gè)包含成功信息和其他所需參數(shù)的XML文檔給受CAS客戶端保護(hù)的Web應(yīng)用2。

6. CAS客戶端建立session,并將session id寫(xiě)入到用戶cookie中。最后將需要轉(zhuǎn)發(fā)的去除了ST票據(jù)信息的URL返回給用戶瀏覽器。該URL即為用戶最初請(qǐng)求的URL。

7. 用戶瀏覽器再次請(qǐng)求訪問(wèn)Web應(yīng)用2。

8. CAS客戶端在cookie中檢測(cè)到session id,允許訪問(wèn)。

9. Web應(yīng)用2返回資源給用戶瀏覽器。

由于CAS框架本身不具備權(quán)限控制和用戶管理的功能,同時(shí)在訪問(wèn)量很大,并發(fā)量很高的情況下,用戶很可能在某個(gè)時(shí)間內(nèi)連續(xù)登陸,這會(huì)對(duì)數(shù)據(jù)庫(kù)造成很大的壓力,可以添加一個(gè)緩存層來(lái)緩解數(shù)據(jù)庫(kù)的壓力。

本文采用Redis對(duì)單點(diǎn)登錄系統(tǒng)進(jìn)行擴(kuò)充,添加緩存層。同時(shí)修改CAS協(xié)議的源碼,在上述CAS協(xié)議的基礎(chǔ)上,對(duì)協(xié)議進(jìn)行擴(kuò)展,在生成ST票據(jù)?前添加粗粒度的訪問(wèn)權(quán)限控制的功能,即是否有權(quán)訪問(wèn)指定網(wǎng)站,同時(shí)對(duì)于每個(gè)網(wǎng)站內(nèi)的Web資源,利用Shiro添加了細(xì)粒度的訪問(wèn)權(quán)限控制。最后,用戶管理系統(tǒng)使用Netty作為中間的WebSocket服務(wù)器,其作用是接收注冊(cè)服務(wù)器的信息并轉(zhuǎn)發(fā)到用戶管理系統(tǒng)服務(wù)器上。

單點(diǎn)登錄系統(tǒng)的服務(wù)器端和客戶端均在Ubuntu 14.04 Kylin系統(tǒng)下開(kāi)發(fā),服務(wù)器端使用CAS框架實(shí)現(xiàn),版本為4.1.1,使用了MyBatis框架來(lái)改進(jìn)CAS服務(wù)器,為其添加用戶控制訪問(wèn)的功能,存儲(chǔ)后端使用數(shù)據(jù)庫(kù)驗(yàn)證用戶信息,數(shù)據(jù)庫(kù)使用 MySQL5.6,并利用Redis數(shù)據(jù)庫(kù)為服務(wù)器添加了緩存層。客戶端使用了Shiro框架,并且Shiro集成了CAS客戶端。注冊(cè)服務(wù)器和用戶管理服務(wù)器使用了SSM(SpringMVC+ Spring+Mybatis)框架實(shí)現(xiàn)就,MVC的意思是模型-視圖-控制器,它是一種設(shè)計(jì)模式也是一種設(shè)計(jì)典范[3]。1WebSocket服務(wù)器使用了Netty實(shí)現(xiàn)。

2 CAS單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)與改進(jìn)

2.1 用戶訪問(wèn)控制機(jī)制與Shiro

一般而言,用戶訪問(wèn)控制機(jī)制包含以下四點(diǎn):

1. 身份認(rèn)證

2. 授權(quán)

3. 確定用戶權(quán)限

4. 執(zhí)行訪問(wèn)

用戶訪問(wèn)控制機(jī)制有兩個(gè)關(guān)鍵的概念。即客體(object)和主體(Subject)。

客體是一種信息實(shí)體,它們蘊(yùn)含或接收信息,客體在Web應(yīng)用系統(tǒng)中通常指欲訪問(wèn)的URL。主體也是一種實(shí)體,它能夠引起信息在客體間流動(dòng),主體在Web應(yīng)用系統(tǒng)中通常指用戶。

自主訪問(wèn)控制(Discretionary Access Control, DAC)是最常用的一類(lèi)訪問(wèn)控制機(jī)制,是用來(lái)判斷一個(gè)主體是否有權(quán)訪問(wèn)客體的一種約束機(jī)制。在這種機(jī)制下,一個(gè)主體(一般在Web應(yīng)用系統(tǒng)中指管理員)可以自主的說(shuō)明其資源可以被那些其他主體(一般在Web應(yīng)用系統(tǒng)中指用戶)以何種訪問(wèn)權(quán)限進(jìn)行訪問(wèn)。實(shí)現(xiàn)的方法有基于行或者基于列的兩種模式。基于行的自主訪問(wèn)控制機(jī)制在每個(gè)主體上都提供一個(gè)該主體可訪問(wèn)的客體的明細(xì)表。而基于列的自主訪問(wèn)機(jī)制,在每個(gè)客體上都提供一個(gè)可訪問(wèn)它的主體的明細(xì)表[4]。

Shiro的內(nèi)部實(shí)現(xiàn)原理是基于自主訪問(wèn)控制機(jī)

制,同時(shí)它的機(jī)制是基于列的形式。即需要對(duì)每一個(gè)客體指定可訪問(wèn)它們的主體。

2.2 用戶訪問(wèn)控制的實(shí)現(xiàn)

項(xiàng)目所采取的用戶訪問(wèn)控制并不是完全依賴(lài)于Shiro,其中對(duì)應(yīng)用系統(tǒng)即CAS客戶端Web應(yīng)用的訪問(wèn)控制是由修改過(guò)后的CAS服務(wù)器實(shí)現(xiàn)的,即粗粒度的訪問(wèn)控制,而在CAS客戶端內(nèi)的更細(xì)粒度的訪問(wèn)控制是由Shiro實(shí)現(xiàn)。這樣做的原因是因?yàn)椋焊鶕?jù)CAS協(xié)議原理,在用戶每次訪問(wèn)CAS客戶端所保護(hù)的Web應(yīng)用時(shí),若Session中無(wú)數(shù)據(jù),則需要跳轉(zhuǎn)到CAS服務(wù)器,經(jīng)過(guò)一系列操作后才能再次訪問(wèn)Web應(yīng)用,若由Shiro在客戶端實(shí)現(xiàn)訪問(wèn)控制功能,則需要在CAS服務(wù)器的一系列操作后進(jìn)行,之后若發(fā)現(xiàn)用戶無(wú)訪問(wèn)權(quán)限,則上述在CAS服務(wù)器進(jìn)行的操作都是沒(méi)有意義的。這就浪費(fèi)了大量的資源和時(shí)間。

所以本項(xiàng)目在CAS服務(wù)器端修改源碼,在生成ST票據(jù)前讀取權(quán)限數(shù)據(jù),判斷是否有權(quán)訪問(wèn),由CAS服務(wù)器來(lái)處理訪問(wèn)控制。如下圖5所示:

圖5 訪問(wèn)控制流程圖1Fig.5 flow-process diagram1 of Access Control

首先用戶訪問(wèn)目標(biāo)應(yīng)用系統(tǒng),由于目標(biāo)應(yīng)用系統(tǒng)受到CAS客戶端的保護(hù),所以用戶將攜回調(diào)地址跳轉(zhuǎn)到CAS服務(wù)器,CAS服務(wù)器保存回調(diào)地址,并驗(yàn)證用戶身份,若驗(yàn)證失敗則禁止用戶訪問(wèn),若驗(yàn)證成功則存儲(chǔ)用戶名到服務(wù)器端Session中,之后再在另外一個(gè)函數(shù)中從Session中讀取出用戶名,從數(shù)據(jù)庫(kù)中讀取出相應(yīng)權(quán)限信息,最后由之前保存的回調(diào)地址驗(yàn)證是否有權(quán)限登錄,若無(wú)權(quán)限則返回,有權(quán)限則創(chuàng)建ST。

細(xì)粒度的訪問(wèn)權(quán)限控制由客戶端的Shiro實(shí)現(xiàn),即對(duì)Web應(yīng)用內(nèi)的某些特定資源進(jìn)行訪問(wèn)權(quán)限控制。該部分訪問(wèn)流程如圖6所示:

首先用戶訪問(wèn)受Shiro及CAS服務(wù)器保護(hù)的客戶端Web系統(tǒng)的指定Web資源,若客戶端不存在用戶信息需要向CAS服務(wù)器請(qǐng)求用戶信息,若存在用戶信息則從數(shù)據(jù)庫(kù)中讀取權(quán)限信息,之后若有權(quán)訪問(wèn)則允許訪問(wèn),無(wú)權(quán)訪問(wèn)則禁止訪問(wèn)。

2.3 Redis緩存層的實(shí)現(xiàn)

CAS緩存層設(shè)計(jì)方面可以利用現(xiàn)在非常流行的NoSQL數(shù)據(jù)庫(kù)Redis來(lái)實(shí)現(xiàn)。它是一個(gè)基于key-value的存儲(chǔ)系統(tǒng),并使用內(nèi)存存儲(chǔ)和讀取數(shù)據(jù),并不是傳統(tǒng)意義的關(guān)系型數(shù)據(jù)庫(kù)。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,它具備極高的讀取性能,所以利用它作為緩存層是非常好的選擇。Redis的置換算法將使用LRU

算法,即在數(shù)據(jù)庫(kù)已滿時(shí)添加新數(shù)據(jù),會(huì)將最近最少使用的數(shù)據(jù)淘汰。CAS存儲(chǔ)后端采用MySQL 5.6。

加入緩存層后的工作流程如圖7所示:

在用戶輸入用戶名和密碼后,瀏覽器將身份信息傳給CAS服務(wù)器。CAS服務(wù)器首先進(jìn)行緩存層驗(yàn)證,即讀取Redis數(shù)據(jù)庫(kù)中的用戶信息,若緩存命中且與用戶輸入相符,則創(chuàng)建TGT。否則,則從MySQL數(shù)據(jù)庫(kù)讀取用戶信息,若存在且與用戶輸入相符則先將用戶身份信息寫(xiě)入Redis之后創(chuàng)建TGT,若用戶信息不存在或與用戶輸入不服則返回驗(yàn)證失敗。

圖6 訪問(wèn)控制流程圖2Fig.6 flow-process diagram2 of Access Control

圖7 緩存層工作流程圖Fig.7 flow-process diagram of Cache layer

2.4 基于Netty的用戶管理系統(tǒng)的實(shí)現(xiàn)

用戶管理系統(tǒng)包含注冊(cè)服務(wù)器、基于Netty的WebSocket服務(wù)器和管理服務(wù)器。其中注冊(cè)服務(wù)器用于完成用戶注冊(cè),管理服務(wù)器實(shí)現(xiàn)用戶管理。這部分的工作流程圖如圖8所示:

首先,用戶訪問(wèn)注冊(cè)服務(wù)器,請(qǐng)求注冊(cè),注冊(cè)服務(wù)器判斷用戶輸入的信息是否合法,若不合法返回注冊(cè)失敗,若合法則完成注冊(cè),之后將數(shù)據(jù)主動(dòng)推送給基于Netty的WebSocket服務(wù)器,WebSocket服務(wù)器接受到數(shù)據(jù)后,再將數(shù)據(jù)主動(dòng)推送給用戶管理服務(wù)器,將用戶信息展示并持久化到數(shù)據(jù)庫(kù)中。

當(dāng)管理員登錄系統(tǒng),系統(tǒng)首先從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),而后進(jìn)行信息展示,等待接受WebSocket傳來(lái)的新的用戶信息,一旦有新用戶信息到來(lái),利用Javascript修改頁(yè)面信息進(jìn)行頁(yè)面展示,這樣做無(wú)需刷新頁(yè)面,管理員可以實(shí)時(shí)的獲取新用戶信息,并對(duì)用戶信息進(jìn)行CRUD操作。

圖8 用戶管理系統(tǒng)工作流程圖Fig.8 flow-process diagram of User Administration

3 總結(jié)

本文在分析了CAS協(xié)議原理的基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)基于CAS的單點(diǎn)登錄系統(tǒng),并對(duì)其進(jìn)行了改進(jìn),增加了粗細(xì)兩種訪問(wèn)權(quán)限控制、緩存層和基于Netty和WebSocket的用戶管理系統(tǒng)。粗的訪問(wèn)權(quán)限控制由Mybatis框架修改CAS服務(wù)器端源碼實(shí)現(xiàn),緩存層由Redis實(shí)現(xiàn),用戶管理系統(tǒng)利用了基于Netty的WebSocket服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的主動(dòng)推送,使得管理員無(wú)需刷新頁(yè)面即可獲取新的信息。之后未來(lái)的工作主要集中在系統(tǒng)性能的提高和魯棒性的提高上。

[1] 郭成寶. 基于Liferay 門(mén)戶與Lotus Domino OA 單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)[J]. 軟件, 2014, 35(1): 72-74.

[2] 潛昕, 羅沙白, 盧康權(quán). 構(gòu)建基于分布式SOA架構(gòu)的統(tǒng)一身份認(rèn)證體系[J]. 軟件, 2013, 34(1): 17-19[3]. 葛管庫(kù).MVC模式下程序設(shè)計(jì)[J]. 軟件, 2013, 34(2): 49-51.

[3] 沈晴霓, 卿斯?jié)h. 操作系統(tǒng)安全設(shè)計(jì)[M]. 北京: 機(jī)械工業(yè)出版社, 2013.

[4] JASIG, CAS協(xié)議[OL]. https://apereo.github.io/cas/4.2.x/ protocol/CAS-Protocol.html.

[5] JASIG, CAS Protolcol[OL]. https://apereo.github.io/cas/4.2.x/ protocol/CAS-Protocol.html.

[6] 李俊. 一個(gè)基于JASIG-CAS改進(jìn)的SSO模型及實(shí)現(xiàn)[D]. 四川: 電子科技大學(xué), 2011.

[7] 蘇悅洪. 基于CAS協(xié)議的單點(diǎn)登錄系統(tǒng)的研究與改進(jìn)[D].廣州: 華南理工大學(xué), 2014.

A Research and Implementation of Single-Sign-On System based on CAS

ZHAO Jin YANG Xu-dong
(BeiJing University of Post and Telecommunications. Institute of Computer, BeiJing 100876)

With the development of the Internet,users often need to visit different systems,as a result,they need to login the systems frequently.Single-Sign-On(SSO) is a technology which can handle the problem above,users can lonin one system just once and then they can visit all relative systems without logging in again by using it.In this paper,after analyzing the basic of CAS protocol, SSO system based on CAS with the new functions of access control,cache layer and user administration is implemented.

Software engineering; Single-sign-on; CAS; Unified authentication

TP311.52

A

10.3969/j.issn.1003-6970.2016.11.026

趙晉(1990-),男,碩士研究生,計(jì)算機(jī)軟件。

楊旭東,教授,主要研究方向:互聯(lián)網(wǎng)技術(shù)。

猜你喜歡
數(shù)據(jù)庫(kù)用戶信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數(shù)據(jù)庫(kù)
關(guān)注用戶
關(guān)注用戶
數(shù)據(jù)庫(kù)
關(guān)注用戶
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
如何獲取一億海外用戶
展會(huì)信息
主站蜘蛛池模板: 欧美精品在线免费| 日韩在线欧美在线| 免费人欧美成又黄又爽的视频| 国产在线八区| 欧美a在线看| 国产精品三区四区| 欧洲精品视频在线观看| 在线不卡免费视频| 国产乱人免费视频| 91欧美亚洲国产五月天| 免费国产无遮挡又黄又爽| 国产福利微拍精品一区二区| 国产美女一级毛片| 国产国产人成免费视频77777| 黄色国产在线| 美女免费精品高清毛片在线视| 高清久久精品亚洲日韩Av| a国产精品| a级毛片网| 国产精品美女在线| 成年人午夜免费视频| 国产1区2区在线观看| 久久久久久国产精品mv| 美女国产在线| 国产91久久久久久| 亚洲AV无码乱码在线观看裸奔| 亚洲三级a| 中日韩欧亚无码视频| 伊人色在线视频| 国产欧美日韩va另类在线播放| 久久久久青草大香线综合精品| 欧美午夜一区| 欧美日韩国产一级| 免费Aⅴ片在线观看蜜芽Tⅴ| 全部免费特黄特色大片视频| 久久伊人久久亚洲综合| 亚洲视频四区| 最新痴汉在线无码AV| 国模沟沟一区二区三区| 欧美一级高清视频在线播放| 天天躁狠狠躁| 在线观看91精品国产剧情免费| 国产区精品高清在线观看| 国产嫖妓91东北老熟女久久一| 久久黄色视频影| 色欲综合久久中文字幕网| 日韩欧美亚洲国产成人综合| 亚洲日本中文字幕乱码中文| 中文字幕人妻无码系列第三区| 日韩欧美中文字幕一本| 中文字幕无码制服中字| 国产无码在线调教| 伊人大杳蕉中文无码| 欧美笫一页| 毛片网站在线播放| 动漫精品啪啪一区二区三区| 午夜少妇精品视频小电影| 久久久久久国产精品mv| 又猛又黄又爽无遮挡的视频网站| 国模私拍一区二区 | 一级毛片在线直接观看| 欧美黄色网站在线看| 色综合天天综合| 麻豆精品久久久久久久99蜜桃| 亚洲成人黄色在线观看| 亚洲无码高清视频在线观看| 精品三级网站| 9久久伊人精品综合| 国产精品对白刺激| 54pao国产成人免费视频| 国产福利免费视频| 国产精品性| 日韩黄色在线| 美女黄网十八禁免费看| 福利小视频在线播放| 全色黄大色大片免费久久老太| 欧洲熟妇精品视频| 毛片一级在线| 国产成人精品综合| 亚洲av综合网| 国产精品99一区不卡| www亚洲天堂|