版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、統(tǒng)一身份認證系統(tǒng)的研究與實現(xiàn)1 引言隨著因特網(wǎng)的飛速發(fā)展,基于B/ S(瀏覽器/ 服務器 結(jié)構(gòu)的企業(yè)應用軟件也得到了快速發(fā)展,各種應用系統(tǒng)已經(jīng)應用到很多企業(yè)的生產(chǎn)管理活動中去,為企業(yè)提高工作效率和管理水平做出了巨大的貢獻。但是,由于企業(yè)受業(yè)務、自身條件和當時軟件技術(shù)的影響,這些不同的系統(tǒng)往往是在不同的時期建設起來的,運行在不同的平臺上。各系統(tǒng)也許是由不同廠商開發(fā)的,使用了各種不同的技術(shù)和標準。每個應用系統(tǒng)都有自己獨立的一套身份驗證機制,采取分散登錄、分散管理。又由于針對企業(yè)應用各系統(tǒng)的聯(lián)系十分緊密,各用戶需要使用大多數(shù)的系統(tǒng)。如果不使用單點登錄(Single Sign On ,簡稱SSO ,勢
2、必造成企業(yè)的工作人員在實際工作中要頻繁地在各個系統(tǒng)登錄和注銷,嚴重影響了生產(chǎn)效率;同時,很多系統(tǒng)都要維持一個用戶身份信息是很麻煩的。因此,信息系統(tǒng)急需建立一個統(tǒng)一的身份認證系統(tǒng),以保證用戶操作的方便和應用系統(tǒng)的安全。所謂統(tǒng)一身份認證,就是用戶基于最初訪問的一次身份認證,就能對其被授權(quán)的資源進行無縫訪問。單點登錄是目前比較流行的企業(yè)業(yè)務整合的解決方案之一。SSO 的定義是:在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。本系統(tǒng)是對一個企業(yè)進行統(tǒng)一身份認證改造,該企業(yè)的應用系統(tǒng)均采用B2S(瀏覽器2服務器 結(jié)構(gòu)構(gòu)建。系統(tǒng)進行統(tǒng)一身份認證改造后,需要能夠?qū)崿F(xiàn)較為靈活的、基于SA
3、ML 協(xié)議和RBAC 協(xié)議原理的單點登錄模型,并且需要有靈活的訪問控制,保證和原有系統(tǒng)的緊密結(jié)合,實現(xiàn)用戶的統(tǒng)一身份認證。2 SAML 、RBAC簡介和工作原理2. 1 SAML 簡介SAML ( Security Assertion Markup Language , 簡稱SAL 標準定義了一個在線商業(yè)伙伴之間交換安全信息的框架。更準確地說,SAML 定義了一個基于XML 標準的框架,用于實體之間交換安全信息。SAML 1. 1 是由OA2SIS ( The Organization for the Advancement of St ructuredInformation Standard
4、s ,簡稱OASIS 標準組織的安全服務技術(shù)委員會SSTC(Security Services Technical Committee ,簡稱SSTC 制定的。SAML 可以實現(xiàn)不同安全服務系統(tǒng)之間的互操作,SSTC 通過了很多用例( 需求 來推動SAML 的需求。SAML 1. X 中解決的最重要問題就是單點登錄問題,用戶使用用戶名和口令登錄源站點,然后希望無需再次驗證即可訪問目標站點。用戶通過在認證站點進行認證登錄,認證站點和目的站點通過交換用戶認證信息,從而到達認證的目的。在這里,認證站點即為一個認證區(qū)域的中心認證服務站,一個認證區(qū)域一般只有一個這樣的認證站點,全面擔任用戶身份認證的責任
5、。而目的站點就是需要認證站點提供服務的應用系統(tǒng),一個區(qū)域一般都有多個這樣的目的站點。由于把認證的工作都交給了認證中心,所以目的站點一般不會考慮身份驗證的問題。2. 2 RBAC工作原理由于該項目是基于SAML 1. 1 標準構(gòu)造的,所以下面介紹的主要是SAML 1. 1 協(xié)議的內(nèi)容。SAML 規(guī)范體系主要由三個部分構(gòu)成: 斷言(Assertion 、請求/ 響應協(xié)議(Request and Response Protocol 、綁定和配置(Bindings/Profiles ,各個部分緊密地聯(lián)合在一起,構(gòu)成了整個SAML協(xié)議的實現(xiàn)。2. 3 RBAC的簡介基于角色的訪問控制(RBAC 的概念在
6、20 年前第一次提出,它是從傳統(tǒng)的隨意訪問控制(Discretionary AccessCont rol ,簡稱DAC 和強制訪問控制(Mandatory AccessCont rol ,簡稱MAC 發(fā)展起來的。它可以實現(xiàn)企業(yè)的權(quán)限機制到企業(yè)組織結(jié)構(gòu)的自然映射,提高了訪問控制的水平,大大提高了安全管理員的效率。RBAC 模型由四個部件模型組成,分別是基本模型RBAC0 (Core RBAC 、角色分級模型RBAC1 ( HierarchalRBAC 、角色限制模型RBAC2 (Const raint RBAC 和統(tǒng)一模型RBAC3 (Combines RBAC。RBAC0 定義了能構(gòu)成一個RB
7、AC 控制系統(tǒng)的最小的元素集合。在RBAC 之中, 包含用戶( Users 、角色(Roles 、對象(Object s 、操作(Operations 、許可權(quán)( Per2missions 五個基本數(shù)據(jù)元素。權(quán)限被賦予角色,而不是用戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權(quán)限。會話Sessions 是用戶與激活的角色集合之間的映射。RBAC0 與傳統(tǒng)訪問控制的差別在于增加一層,間接性地帶來了靈活性,RBAC1 、RBAC2 、RBAC3 都是先后在RBAC0 基礎上的擴展。3 統(tǒng)一身份認證設計和實現(xiàn)3. 1 總體構(gòu)架該系統(tǒng)采用B2S 結(jié)構(gòu),整個統(tǒng)一身份認證體系由一個認證服
8、務器和應用系統(tǒng)服務器(該系統(tǒng)主要用于實驗目的,因此這里的應用服務器只有一個,在實際應用中應用系統(tǒng)應該有多個 構(gòu)成。認證服務器負責對用戶進行身份驗證,并把認證結(jié)果返回給應用服務器;應用服務器根據(jù)認證的結(jié)果,結(jié)合其自身的RBAC 訪問控制系統(tǒng),對用戶訪問系統(tǒng)進行授權(quán)。認證服務端由SAML 響應器、身份驗證服務和認證服務數(shù)據(jù)庫構(gòu)成。SAML 響應器用于與應用服務端進行SAML 協(xié)議信息,用于完成認證服務器和應用系統(tǒng)的身份信息處理和通信;身份驗證服務主要用于對登錄用戶進行驗證;認證服務數(shù)據(jù)庫用于保存與用戶的身份相關(guān)的信息。應用服務端由SAML 響應器、RBAC 訪問控制和應用系統(tǒng)數(shù)據(jù)庫組成。SAML
9、響應器用于與認證服務端進行SAML 協(xié)議信息,用于完成認證服務器和應用系統(tǒng)的身份信息處理和通信; RBAC 訪問控制組件用于根據(jù)用戶在該系統(tǒng)中的角色對用戶訪問系統(tǒng)的權(quán)限進行有效的控制;應用系統(tǒng)端數(shù)據(jù)庫主要包括應用系統(tǒng)的賬戶和對應權(quán)限信息,當然還應包括用于保存應用系統(tǒng)業(yè)務數(shù)據(jù)的信息。由于本文的關(guān)注點主要在認證方面,故在本系統(tǒng)中不會表達。3. 2 數(shù)據(jù)庫設計按照模型設計的要求,統(tǒng)一認證系統(tǒng)包括兩部分數(shù)據(jù)庫:一部分屬于認證服務器的IdentityInformation 數(shù)據(jù)庫,另一部分是應用系統(tǒng)的ServiceInformation 數(shù)據(jù)庫(因為只為了表示統(tǒng)一身份認證,在該系統(tǒng)設計中只有訪問控制部分
10、的設計 。首先介紹IdentityInformation 數(shù)據(jù)庫的設計。設計該數(shù)據(jù)庫的目的主要是為了表達同一用戶管理模型中的映射關(guān)系,把各應用系統(tǒng)的賬戶和統(tǒng)一的用戶ID 聯(lián)系起來。該數(shù)據(jù)庫由Application、user 、User_Account _Application 三個表構(gòu)成,各表之間通過外鍵相關(guān)聯(lián)。根據(jù)現(xiàn)在分別對各表的設計進行介紹:表User 的主要作用是為了表達統(tǒng)一身份認證的統(tǒng)一用戶的目的。這里,把有應用系統(tǒng)的各個賬號由User 表中的user_ ID 表示。這樣,用戶的身份就被統(tǒng)一起來了,用戶的驗證主要根據(jù)這張表的user_ID 和password 判斷,它由用戶唯一標志(u
11、ser_ID 、密碼(password 和用戶名(user_name 構(gòu)成。表User_Account_Application 的主要作用是建立用戶到各應用系統(tǒng)中的賬號,和賬號對應訪問的系統(tǒng)建立對應關(guān)系。根據(jù)登錄模型設計的要求,訪問控制由系統(tǒng)自行決定。所以,建立這樣的關(guān)聯(lián)后,用戶訪問各系統(tǒng)就可以根據(jù)系統(tǒng)自身的訪問控制表進行用戶系統(tǒng)授權(quán)。它由用戶唯一標志(user_ID 、賬號標志(account _ ID 和應用系統(tǒng)唯一標志(application_ID 構(gòu)成,這三個字段聯(lián)合構(gòu)成一個主鍵,用于表示三者的唯一關(guān)系。表Application 的主要作用是描述應用系統(tǒng)的信息,包括應用系統(tǒng)唯一標志(a
12、pplication_ ID 、應用系統(tǒng)名稱(application_name 和應用系統(tǒng)的訪問地址(application_url 。由于應用系統(tǒng)都采用B2S 結(jié)構(gòu),所以可以用URL 地址表示應用系統(tǒng)資源的位置。下面介紹應用系統(tǒng)的數(shù)據(jù)庫ServiceInformation。設計該數(shù)據(jù)庫的目的是表達設計的訪問控制模型,設計的表只包含完成訪問控制的部分。該數(shù)據(jù)庫包括四個基本信息表,即User (用戶表 、Role (角色表 、Privilege (權(quán)限表 、Object (操作對象 ,它們分別定義了用戶、角色、權(quán)限、操作對象各個實體的基本信息;另外有五個關(guān)系表,即User_ ToRole (用戶
13、2角色關(guān)系表 、User_ To_SubPrivilege (用戶2附加權(quán)限關(guān)系表 、User_ To_SubPrivi1ege (用戶2限制權(quán)限關(guān)系表 、Priviliege_ To _Object (權(quán)限2操作對象關(guān)系表 。數(shù)據(jù)庫中各表的關(guān)系設計。它對應于認證端的賬戶概念; Role 表用于定義角色,一個角色代表享有系統(tǒng)相似權(quán)限的一部分人; Privilege表用于定義系統(tǒng)的權(quán)限;Object 表用于表達系統(tǒng)的功能實體,它和權(quán)限通過Privilege_ To _Object (權(quán)限2操作對象關(guān)系表 關(guān)聯(lián)起來,用于表達訪問控制的結(jié)果。User _ To _Role (用戶2角色關(guān)系表 主要用
14、于描述用戶到角色的對應,而Role_To_ Privilege (角色2權(quán)限關(guān)系表 用于表達角色擁有的權(quán)限。這樣,通過用戶就能夠找到用戶到權(quán)限的一個對應。同樣,User_ To _AddPrivilege (用戶2附加權(quán)限關(guān)系表 、User_ To_SubPrivilege (用戶- 限制權(quán)限關(guān)系表 也可以分別得到一個用戶到權(quán)限的對應。通過上述對應關(guān)系,可以根據(jù)模型設計的要求找到一個用戶到權(quán)限的映射,從而達到訪問控制的目的。筆者通過SQL 語言中各表的連接查詢可以表達出模型設計的要求。3. 3 SAML 組件介紹該系統(tǒng)中采用了ComponentSpace 公司的SAML 組件,該組件很好地實現(xiàn)
15、了SAMlL 1. 1 協(xié)議中所要求的功能。該組件按SAML 的協(xié)議層次把組件分成了Asser2tions、Protocol 、Binding、Profile 四部分(名稱空間 。3. 4 系統(tǒng)實現(xiàn)3. 4. 1 系統(tǒng)詳細模塊結(jié)構(gòu)該系統(tǒng)基于B2S 結(jié)構(gòu)創(chuàng)建,將采用微軟的ASP. NET技術(shù)作為實現(xiàn)基礎,數(shù)據(jù)庫則采用了微軟的SQL2000 數(shù)據(jù)庫,消息的傳遞主要采用網(wǎng)頁傳值的方式實現(xiàn)。根據(jù)模型設計的要求,系統(tǒng)由認證服務器端( Identity Provider 網(wǎng)站和應用服務器端( Service Provider 網(wǎng)站構(gòu)成。每個頁面(aspx 文件 實現(xiàn)模塊中的部分功能,通過各個頁面之間的身份
16、信息的傳遞,最終達到實現(xiàn)模型設計的需求。為滿足統(tǒng)一身份認證的要求,現(xiàn)針對各個頁面的功能作一個簡要的功能介紹:(1 認證端( Identity Provider 網(wǎng)頁。認證端網(wǎng)站中包含頁面和其對應的功能描述:CheckImage. aspx (驗證碼頁面 主要用于隨機生成圖片碼,用戶每次登錄必須輸入不同的圖片驗證碼,防止攻擊者采用自動攻擊工具不斷地嘗試用戶名和密碼,增加了系統(tǒng)的安全性。增加攻擊者嘗試猜測密碼的難度,也是目前網(wǎng)站比較常用的安全方式之一。Login. aspx (登錄頁面 主要是通過訪問認證中心數(shù)據(jù)庫中的用戶名和密碼信息來判斷用戶的身份是否合法。如果認證成功, 則轉(zhuǎn)到Applicat
17、ionInfo. aspx ( 應用系統(tǒng)信息頁面 。ApplicationInfo. aspx (應用系統(tǒng)信息頁面 主要根據(jù)已經(jīng)通過驗證的登錄用戶,依據(jù)數(shù)據(jù)庫中該用戶對應的可訪問的應用系統(tǒng)信息,在頁面上顯示,供用戶選擇登錄。用戶選擇登錄后,將生成用戶認證斷言和票據(jù)并保存在應用中,然后把票據(jù)傳遞給應用服務器的Artifact receiver. aspx(票據(jù)接受處理頁面 ,由應用系統(tǒng)端作進一步處理。Saml2responder. aspx (斷言查詢 的功能主要是根據(jù)應用系統(tǒng)端傳遞過來的請求信息找到對應該請求的斷言,并根據(jù)該斷言把斷言結(jié)果返回給應用系統(tǒng)端,應用系統(tǒng)端作進一步處理; Identi
18、tyInformation (認證端數(shù)據(jù)庫 的主要功能是保存用戶的身份驗證數(shù)據(jù)和應用系統(tǒng)信息的相關(guān)信息。(2 應用系統(tǒng)端( Service Provider 。應用系統(tǒng)端網(wǎng)站中包含的頁面和其對應的功能:Artifact receiver. aspx (票據(jù)接收頁面 根據(jù)認證服務器端的票據(jù)構(gòu)造SAML 請求對象,并把查詢斷言傳遞到認證服務器;認證服務器根據(jù)其保存的斷言信息返回查詢結(jié)果( SAML 返回對象 給該頁面,應用系統(tǒng)端根據(jù)該結(jié)果決定是否給用戶訪問。Defalut . as2px (系統(tǒng)默認頁面 是該頁面為應用系統(tǒng)的總控制臺,在這里可以訪問應用系統(tǒng)的具體功能。如果用戶認證成功,則表示用戶有
19、權(quán)進入該應用系統(tǒng),該頁面將根據(jù)對用戶的訪問控制權(quán)利,對用戶訪問系統(tǒng)的功能作限定。IdentityIn2formation (應用系統(tǒng)端數(shù)據(jù)庫 主要功能是保存原有系統(tǒng)的用戶身份(賬戶 信息和對應訪問控制信息。3. 4. 2 統(tǒng)一驗證流程該系統(tǒng)通過SAML 協(xié)議的Browser/ Artifact 方式進行實現(xiàn)。登錄流程大體為:用戶在驗證服務器端驗證通過后,生成斷言和票據(jù)(Artifact ,把斷言和Artifact 綁定在一起保存到認證服務器端的全局變量(在該系統(tǒng)的實現(xiàn)中為ASP. NET 的Application 全局變量 。認證服務器把票據(jù)傳遞給應用服務器,應用服務器根據(jù)票據(jù)(Artifac
20、t 查詢認證服務器所對應的斷言,并把查詢結(jié)果(認證結(jié)果 返回給認證服務器。認證服務器判斷結(jié)果的有效性和真?zhèn)涡?如果真實有效,則對用戶訪問系統(tǒng)授權(quán)。根據(jù)登錄流程的時間序列圖,對各部分的功能和實現(xiàn)給出一個詳細的描述:(1 用戶輸入用戶名、密碼、驗證碼到認證服務器進行驗證,本系統(tǒng)采用傳統(tǒng)的用戶名和密碼方式進行驗證。首先,系統(tǒng)驗證圖片碼,如果成功,對輸入的密碼加密(由于數(shù)據(jù)庫保存的密碼是一個MD5 的Hash 值,所以需要對用戶輸入密碼進行MD5 加密 ;然后,再和數(shù)據(jù)庫中的記錄進行比對:如果用戶驗證成功,系統(tǒng)把通過驗證的用戶ID 寫入Session (會話 ,頁面將跳轉(zhuǎn)到ApplicationInf
21、o 頁面作進一步處理。(2 在ApplicationInfo 頁面,系統(tǒng)將根據(jù)系統(tǒng)中用戶ID 的Session 值對數(shù)據(jù)庫進行查詢,找出關(guān)聯(lián)到該用戶ID的用戶相關(guān)系統(tǒng)信息,并展示到頁面上供用戶選擇。(3 當用戶選擇了需要進入的應用系統(tǒng)并確認進入后,系統(tǒng)將根據(jù)用戶ID 對應于該應用系統(tǒng)的用戶帳戶產(chǎn)生斷言和票據(jù),并把它保存在全局的Application 變量中。(4 生成斷言后,系統(tǒng)將把票據(jù)(Aritfact 以URL 傳值的方式傳到ArtifactReceiver 頁面。(58 由于第( 5 步到第( 8 步聯(lián)系比較緊密, 是SAML 的主要身份信息交換機制,所以在這里把它們放在一起進行說明。首
22、先,ArtifactReceiver 頁面在裝載時,根據(jù)傳回來的票據(jù)值創(chuàng)建SAML 的Request 對象,并通過它向應用服務器頁面(在這里是SamlResponder 頁面 查詢斷言;amlresoponder 頁面負責處理SAML 請求,并根據(jù)票據(jù)( Artifact 查找Application 中相應的斷言, 并構(gòu)造SAML 的Response 對象,通過認證服務器的私鑰進行加密,并返回; ArtifactReceiver 頁面處理SAML 的Response對象,并根據(jù)斷言的結(jié)果,其中斷言中包含了統(tǒng)一認證用戶的ID 對應到應用系統(tǒng)的賬號,給用戶訪問系統(tǒng)授權(quán)(這里采用了ASP. NET 的窗口認證方式,該方式可以保留用戶的登錄信息到Cookie 中 ;根據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)公園綠化養(yǎng)護與排水解決方案
- 城市基礎設施SMW工法樁施工方案
- 幼兒園教師集體備課制度
- 現(xiàn)代林業(yè)機械化施工方案
- 國慶期間志愿服務活動方案
- 電商平臺用戶購買習慣調(diào)研工作方案
- 小學語文教師培訓學習工作總結(jié)
- 醫(yī)療物流行業(yè)高效配送方案
- 高標準農(nóng)田農(nóng)作物輪作方案
- 老年人居家護理服務實施方案
- 人教版九年級數(shù)學下冊相似《相似三角形(第4課時)》示范教學課件
- 2024年新高考試題分析及2025屆備考策略建議課件
- 2024年供應鏈管理師技能競賽理論考試題庫資料(含答案)
- 義務教育地理2022年版課程標準考試題庫及答案
- T-CRHA 049-2024 結(jié)核病區(qū)消毒隔離護理管理規(guī)范
- 華為質(zhì)量回溯(根因分析與糾正預防措施)模板
- 2024年湖北省武漢市中考語文試卷真題(含答案逐題解析)
- JGJ8-2016建筑變形測量規(guī)范
- 中國急性缺血性卒中診治指南(2023)解讀
- 2024學年初中營造和諧溫馨的班級文化班會教學設計
- 2024年版-生產(chǎn)作業(yè)指導書SOP模板
評論
0/150
提交評論