資源描述:
《基于saml單點登錄模型研究與設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于SAML單點登錄模型研究與設(shè)計付影平1,杜程2,劉建華1(1.西安郵電大學(xué)信息中心,陜西西安710061;2.西安郵電大學(xué)計算機學(xué)院,陜西西安710061)摘要:基于SAML的單點登錄基本模型的研究,通過闡述SAML和單點登錄的基本概念和相關(guān)技術(shù),對兩種傳統(tǒng)基于SAML單點登錄的模型Pull和Push深入研究分析,并根據(jù)模型的不足之處提出了一個改進(jìn)型模型。最后對改進(jìn)型模型系統(tǒng)進(jìn)行基于Java模塊化的設(shè)計,并且對每個模塊運行流程進(jìn)行了詳盡的描述和介紹,同時對系統(tǒng)進(jìn)行了實現(xiàn)。該改進(jìn)模型解決了用戶
2、跨越訪問單點登路問題,具有很好的安全性與普通性。.jyqkentReceive(HttpServletResponseHttpRequest),該方法用于站點接收到網(wǎng)絡(luò)中傳輸過來的HttpServle?tRequest對象,并從其中提取SOAP消息,然后從SOAPEnvelope中提取SOAPBody,并將SOAPBody的根元素轉(zhuǎn)換成Document對象,返回斷言請求消息的Document對象。這個方法實現(xiàn)了信息轉(zhuǎn)換和通信的請求與應(yīng)答過程,傳輸模塊封裝了底層消息和HTTP連接協(xié)議,提供給最上層
3、應(yīng)用程序簡明的消息傳輸體系。3.3信息安全處理模塊設(shè)計與傳輸模塊一樣,信息安全處理模塊如圖7所示,也是通用模塊,需要同時部署到SSO客戶端和服務(wù)器端。信息安全處理模塊主要由以下2個類來實現(xiàn)。(1)安全處理類XMLFile。XMLFile類可以對任何XML文檔以及文檔中的任意指定部分進(jìn)行安全處理。對于本系統(tǒng),安全處理模塊使用在SSO服務(wù)器端和SSO客戶端中,這對XMLFile類本身并沒有影響,惟一不同的是2個站點使用的XML文檔和密鑰不同。(2)加密,數(shù)字簽名類MD5Encrypt。MD5Encr
4、ypt類是開源的加密應(yīng)用程序,MD5是一種散列式加密算法,具有高速、安全、高效等特點。由于JDK7工具包中自帶這個加密算法類庫,所以本系統(tǒng)應(yīng)用這個進(jìn)行加密和數(shù)字簽名。3.4SSO服務(wù)器端設(shè)計與實現(xiàn)根據(jù)SAML單點登錄的系統(tǒng)總體架構(gòu),SSO服務(wù)器端模塊如圖8所示,包括SAML解析器、身份認(rèn)證模塊、SAML斷言生成器模塊和用戶數(shù)據(jù)庫。(1)用戶通過信息安全傳輸模塊將身份信息一些標(biāo)識性信息發(fā)送到SSO服務(wù)端。(2)SAML解析器對消息進(jìn)行解析,提取用戶信息,并發(fā)往身份認(rèn)證模塊。(3)身份認(rèn)證模塊對解析
5、后的信息進(jìn)行驗證并將信息與用戶身份庫信息進(jìn)行對比確認(rèn)。(4)根據(jù)對比確認(rèn)判斷用戶信息合法性,然后提取庫中的用戶屬性信息最后將這些屬性信息提交給SAML斷言生成器,為用戶生成SAML斷言令牌。(5)SAML斷言生成器將SAML令牌發(fā)送到信息安全傳輸處理模塊進(jìn)行處理返回用戶實體。其中SAML解析模塊由SAMLRequest類實現(xiàn)。SAML解析模塊從SAMLRequest所包含的Query對象中取出其中所包含的用戶身份信息。解析請求的方法通過對SAMlRequest的解析,返回一個包含用戶信息、屬性信
6、息和標(biāo)識信息的HashMap對象,進(jìn)而可以從中提取出信息。身份認(rèn)證模塊使用用戶名和屬性信息對用戶身份進(jìn)行驗證,并通過查詢數(shù)據(jù)庫中用戶的資源返回資源列表。SAML斷言生成模塊的實現(xiàn)由samlsso.saml包中的很多類來完成的:SAMLResponse:繼承了BaseResponse類,可以包含多個Assertions;SAMLAssertion:該類表示一個完整的斷言,即SAML令牌;SAMLAttribute:屬性類,包括屬性名、屬性值和命名空間等,用以表示某種屬性的名稱和屬性值等信息;SAM
7、LStament為抽象類,是所有聲明的公共基類。3.5SSO客戶端設(shè)計與實現(xiàn)在客戶端中對于普通用戶可以使用原有L解析器),經(jīng)過解析將用戶信息和SSO服務(wù)器身份,提交給授權(quán)模塊。授權(quán)模塊收到用戶信息后,與用戶權(quán)限庫信息進(jìn)行比對,根據(jù)用戶信息權(quán)限提供LResponseresponse),該類主要用于從SAML令牌中解析用戶屬性信息。PublicStaticBooleanverifyUser(Userportaluser,Userserveruser),該類主要用于檢查從doc對象中獲得的2次User
8、對象是否一致。PublicStaticBooleanveri?fy7Identifier(Identifieridportal,Identifieridsp),該類用于檢查從doc中獲得的標(biāo)識信息是否與SP需要的一致。授權(quán)管理模塊:使用Java來實現(xiàn)認(rèn)證和權(quán)限分配。將所有認(rèn)證和權(quán)限分配部分打包,對外只提供API,這樣既方便了開發(fā)的調(diào)用,又使得不同服務(wù)之間的授權(quán)管理能夠?qū)崿F(xiàn)統(tǒng)一,并且方便管理維護(hù)。授權(quán)管理對外提供API的類有:登求認(rèn)證,主要實現(xiàn)根據(jù)用戶名和密碼驗證用戶的合法身份;密碼修改,為用戶提