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

基于SAML單點登錄模型研究與設計

2015-11-17 16:41:49付影平杜程劉建華
現代電子技術 2015年16期

付影平++杜程++劉建華

摘 要: 基于SAML 的單點登錄基本模型的研究,通過闡述SAML和單點登錄的基本概念和相關技術,對兩種傳統基于SAML單點登錄的模型Pull和Push深入研究分析,并根據模型的不足之處提出了一個改進型模型。最后對改進型模型系統進行基于Java模塊化的設計,并且對每個模塊運行流程進行了詳盡的描述和介紹,同時對系統進行了實現。該改進模型解決了用戶跨越訪問單點登路問題,具有很好的安全性與普通性。

關鍵詞: SAML; 單點登錄; Pull模型; Push模型

中圖分類號: TN911?34; TP315 文獻標識碼: A 文章編號: 1004?373X(2015)16?0038?04

Research and design of single sign?on model based on SAML

FU Yingping1, DU Cheng2, LIU Jianhua1

(1. Information Center, Xian University of Posts and Telecommunications, Xian 710061, China;

2. School of Computer Science, Xian University of Posts and Telecommunications, Xian 710061, China)

Abstract: The SAML?based single sign?on model is studied in this paper. The basic concepts and correlation technologies of SAML and single sign?on are elaborated respectively. The two traditional single sign?on models (Pull and Push) based on SAML are analyzed deeply. An improved model based on the inadequacy of the models is proposed. The modular design of the improved model system is carried out based on JAVA. The running process of each module is described and presented in detail. The system was realized.

Keywords: SMAL; single?sign?on; Pull model; Push model

0 引 言

隨著網絡技術的廣泛應用,人們的日常生活都離不開對網絡應用系統的使用。所有系統都要求用戶在其系統內注冊獨立的賬號,并通過應用系統本身的驗證機制對用戶的身份進行檢驗。大量的用戶賬號,難免會有安全性的隱患。而且,很多應用系統的密碼直接使用HTTP POST明文傳送,更降低了網絡信息的安全性。對于應用系統管理人員來說,需要加大維護用戶身份信息和獨立的授權信息,還要經常性地添加一些新的安全項目。

對于這種情況,應用系統提供方和用戶都急需一種方便快捷、安全性強的技術。所以找到一種只需身份認證一次就可登錄到多個應用系統的認證方式成為如今研究的焦點。因此,針對網絡系統易用性和安全性這兩個很難共存的矛盾特性,人們提出了單點登錄技術(Single Sign On,SSO)這一概念。

1 SAML單點登錄相關技術

1.1 單點登錄技術

單點登錄(Single Sign On)是目前比較流行的企業業務整合解決方案之一。單點登錄技術模型如圖1所示,當用戶第一次訪問應用系統a的時候,會被重定向到認證系統中進行驗證;然后認證系統對登錄信息進行身份驗證,如果通過驗證,返回給用戶一個認證的憑證;用戶再訪問別的應用時,應用系統接受到請求之后會把身份憑證送到認證系統進行驗證,檢查身份憑證的合法性。如果通過驗證,用戶就在不用再次登錄的情況下訪問應用系統b。

1.2 SAML模型

安全聲明標記語言(SAML)是由OASIS(高級結構化信息標準組織)批準,成為基于XML實現Web站點之間互操作的安全訪問控制框架體系和協議。

SAML域模型包括憑證收集器、認證實體、會話實體、屬性實體和策略決策點。這些實體都為單點登錄提供服務。

憑證收集器:收集用戶身份憑證作為系統驗證對象;認證實體:生成認證斷言;會話實體:負責維護會話狀態;屬性實體:生成屬性斷;屬性倉庫:存儲屬性斷言;策略倉庫:存儲策略;策略決策點:為自己或其他請求授權的系統實體做出授權決策。

圖1 SSO技術模型

2 SAML單點登錄模型研究

2.1 基本模型及安全性分析

基于SAML單點登錄框架有3個實體組成,分別為:主體,即用戶,發出訪問請求;源站點,負責檢驗用戶身份,提供給用戶身份憑證;目標站點:提供和保護用戶所需的信息。

傳統的基于SAML單點登錄的模型有:Pull模型(如圖2所示)和Push模型(如圖3所示)。

圖2 Pull模型

圖3 Push模型

在Pull模型中,源站點為主體生成令牌來讓目標站點使用,這樣導致SAML認證聲明不會在隨主體傳輸,而主體常常是最容易被攻擊的實體,所以增加了系統的安全性。但每次向新的目標站點申請服務時,Pull模型新的目標站點都要向源站點發出請求,而源站點就不得不為主體管理不同的令牌,大量的請求就會造成系統的阻塞,導致各種服務不能正常運轉。

在Push模型中,源站點請求目標站點為主體生成令牌,而目標站點也維護和管理令牌,這樣管理令牌的工作就由各個目標站點來完成,大大減少了源站點的壓力,不容易出現網絡堵塞。但是由于SAML認證聲明會隨著主體進行傳輸,導致Push模型安全性方面不如Pull模型。

這2種單點登錄模型在用戶認證身份的時候都只進行了一次,但每次進行新的訪問時,Pull模型中用戶SAML令牌是源站點針對目標站點的請求產生的,然而Push模型中用戶SAML令牌是目標站點針對源站點發出的請求來產生的。雖然這2個模型組織構成是一樣,但是順序流程不同。這2個傳統的單點登錄模型系統有著以下問題:

(1) 用戶每次想要登錄一個新目標站點時,這個目標站點就與源站點交換信息,這個過程非常繁瑣,經常性的信息交換也容易產生安全性問題。

(2) 目標站點和源站點的信息交互造成互相依附性,不能夠靈活的部署。

(3) 這2個模型都需要2個站點其中1個來維護用戶的令牌,如果短時間內維護了大量用戶令牌或者令牌請求,那么很容易造成網絡阻塞,甚至服務器崩潰等問題。

2.2 改進的模型

根據這2個模型的分析,要根據不同環境選擇模型,如果有多個目標站點Push模型更好一些。但是本文要實現一個更安全的單點登錄系統,所以提出了一個改進型模型,見圖4。

圖4 改進的模型

改進后的模型有以下幾個優點:

(1) 主體訪問目標站點不再需要2個站點間進行信息交流,簡化的登錄流程和信息傳輸。

(2) 源站點頒發的SAML令牌可以被所有信任域內的目標站點解析查看,這樣使得2個站點更加的靈活和獨立,減少了部署的難度。

(3) 由主體用戶去維護SAML斷言令牌,減少了源站點和目標站點的維護壓力。

3 系統的設計與實現

3.1 體系框架設計

基于改進模型的SAML單點登錄系統主要由3個大模塊組成,分別是信息安全傳輸處理模塊、客戶端和服務器端。圖5是整個系統的體系框架。

圖5 體系框架

(1) 信息安全傳輸處理模塊。該模塊主要有是3個功能,XML加密解密、XML數字簽名產生與驗證和XML信息組裝成SOAP消息發出。XML數字簽名能夠保證數據的完整和可驗證性,XML加密用來保證信息的安全性,SOAP消息最為載體將信息發送出去。

(2) 客戶端:接收用戶信息,產生SAML請求,解析SAML令牌,根據SAML授權信息向用戶提供對應服務。

(3) 服務器端:根據客戶端通過用戶發來的SAML請求生成SAML斷言,在對斷言進行加密簽名產生SAML斷言令牌,在將令牌通過用戶發送給客戶端。

這個系統授權管理放在了客戶端里而不是服務器端,主要有下面的幾點考慮:

(1) 目標站點應該是分布式的,所以目標站點互相間應該有很強的相互獨立性,應對外界訪問權限應該能夠自主決策。

(2) 這種設計使得系統更加靈活的部署和拓展。

(3) 若授權管理模塊處在服務器端,用戶想要訪問一個新的目標站點,就要先到服務器端進行再次授權,再返回到目標站點。這樣增加了步驟,降低了系統效率。

3.2 傳輸模塊設計

在基于SAML的SSO系統中,傳輸模塊是每個節點相互連接的基礎。將XML消息組裝成SOAP消息或者從SOAP中提取XML消息,然后經過HTTP協議傳遞SOAP信息。整體系統的傳輸機構如圖6所示。

圖6 傳輸模塊

傳輸模塊主要由類.TransportMsg來實現。Public Document Receive(HttpServletResponse HttpRequest),該方法用于站點接收到網絡中傳輸過來的HttpServletRequest對象,并從其中提取SOAP消息,然后從SOAP Envelope中提取SOAP Body,并將SOAP Body的根元素轉換成Document對象,返回斷言請求消息的Document對象。這個方法實現了信息轉換和通信的請求與應答過程,傳輸模塊封裝了底層消息和HTTP連接協議,提供給最上層應用程序簡明的消息傳輸體系。

3.3 信息安全處理模塊設計

與傳輸模塊一樣,信息安全處理模塊如圖7所示,也是通用模塊,需要同時部署到SSO客戶端和服務器端。

圖7 信息安全處理模塊

信息安全處理模塊主要由以下2個類來實現。

(1) 安全處理類XMLFile。XMLFile類可以對任何XML文檔以及文檔中的任意指定部分進行安全處理。對于本系統,安全處理模塊使用在SSO 服務器端和SSO客戶端中,這對XMLFile類本身并沒有影響,惟一不同的是2個站點使用的XML文檔和密鑰不同。

(2) 加密,數字簽名類MD5Encrypt。MD5Encrypt類是開源的加密應用程序,MD5是一種散列式加密算法,具有高速、安全、高效等特點。由于JDK7工具包中自帶這個加密算法類庫,所以本系統應用這個進行加密和數字簽名。

3.4 SSO服務器端設計與實現

根據SAML單點登錄的系統總體架構,SSO服務器端模塊如圖8所示,包括SAML解析器、身份認證模塊、SAML斷言生成器模塊和用戶數據庫。

圖8 SSO服務器端模塊

(1) 用戶通過信息安全傳輸模塊將身份信息一些標識性信息發送到SSO服務端。

(2) SAML解析器對消息進行解析,提取用戶信息,并發往身份認證模塊。

(3) 身份認證模塊對解析后的信息進行驗證并將信息與用戶身份庫信息進行對比確認。

(4) 根據對比確認判斷用戶信息合法性,然后提取庫中的用戶屬性信息最后將這些屬性信息提交給SAML斷言生成器,為用戶生成SAML斷言令牌。

(5) SAML斷言生成器將SAML令牌發送到信息安全傳輸處理模塊進行處理返回用戶實體。

其中SAML解析模塊由SAMLRequest類實現。SAML解析模塊從SAMLRequest所包含的Query對象中取出其中所包含的用戶身份信息。解析請求的方法通過對SAMlRequest的解析,返回一個包含用戶信息、屬性信息和標識信息的HashMap對象,進而可以從中提取出信息。身份認證模塊使用用戶名和屬性信息對用戶身份進行驗證,并通過查詢數據庫中用戶的資源返回資源列表。

SAML斷言生成模塊的實現由samlsso.saml包中的很多類來完成的:

SAMLResponse:繼承了BaseResponse類,可以包含多個Assertions;SAMLAssertion:該類表示一個完整的斷言,即SAML令牌;SAMLAttribute:屬性類,包括屬性名、屬性值和命名空間等,用以表示某種屬性的名稱和屬性值等信息;SAMLStament為抽象類,是所有聲明的公共基類。

3.5 SSO客戶端設計與實現

在客戶端中對于普通用戶可以使用原有Web站點自有的登錄模塊登錄,使用Web服務。對于單點登錄用戶,首先用戶發送請求經過信息安全傳輸處理模塊發送到認證代理(SAML解析器),經過解析將用戶信息和SSO服務器身份,提交給授權模塊。授權模塊收到用戶信息后,與用戶權限庫信息進行比對,根據用戶信息權限提供Web服務。認證代理模塊的實現的部分類如下:

Public User getUserlnfo(Document doc),該類的作用是根據doc對象取得用戶的屬性信息,返回用戶對象。Public Identifier getldentifier(Document doc),該類的作用是根據doc對象取得用戶添加的標識信息,返回標識對象。Public Static User getUser(SAMLResponse response),該類主要用于從SAML令牌中解析用戶屬性信息。Public Static Boolean verifyUser(User portaluser,User serveruser),該類主要用于檢查從doc對象中獲得的2次User對象是否一致。Public Static Boolean verify7Identifier(Identifier idportal,Identifier idsp),該類用于檢查從doc中獲得的標識信息是否與SP需要的一致。

圖9 SSO客戶端

授權管理模塊:使用Java來實現認證和權限分配。將所有認證和權限分配部分打包,對外只提供API,這樣既方便了開發的調用,又使得不同服務之間的授權管理能夠實現統一,并且方便管理維護。

授權管理對外提供API的類有:登求認證,主要實現根據用戶名和密碼驗證用戶的合法身份;密碼修改,為用戶提供修改密碼的功能;獲取菜單,取得用戶所能使用的菜單;獲取權限,取得用戶所有權限;請求檢查,對用戶的HTTP請求進行檢查,看用戶是否有權限得到響應。

4 結 語

單點登錄技術是現在企業業務整合的關鍵技術之一;也是目前實現為了更有效地使用應用系統和管理的方法。本文中通過對基于SAML單點登錄的模型的分析,比較了Pull和Push模型的優缺點,提出了改進的模型。這個模型解決了用戶跨域訪問單點登錄問題,具有很好的安全性和普適性。依據改進后的模型,利用Java開發平臺給出了基于SAML 2.0規范的單點登錄系統的模塊設計。該系統減少了驗證用戶聲明的通信,提高了工作效率和系統的安全性,在電子商務、電子政務等多應用系統中具有非常好的應用前景。

參考文獻

[1] 尹星.基于SAML的單點登陸模型及其安全的研究與實現[D].鎮江:江蘇大學,2005.

[2] HUGHES John, MALER Eve. Technical overview of the OASIS security assertion markup language (SAML) [EB/OL]. [2005?05?11]. http:// www. oasis?open. org/committees/doc?um

ents.

[3] NIE Fengming, XU Feng, QI Rongzhi. SAML?based single sign?on for legacy system Automation and Logistics (ICAL) [C]// 2012 IEEE International Conference on Digital Object Identifier. [S.l.]: IEEE, 2012: 470?473.

[4] 陳天玉,謝冬青,楊小紅,等.基于SAML與XKMS的安全單點登錄認證模型的研究與實現[J].計算機應用研究,2010(3):1019?1021.

[5] 高昊江,肖田元.基于SAML改進的單點登錄模型研究[J].計算機工程與設計,2011(3):827?829.

[6] 韓偉,范植華.基于SAML的單點登錄技術在Web服務中的應用研究[J].計算機工程與設計,2005(3):634?636.

主站蜘蛛池模板: 欧美激情视频一区| 亚洲男人在线| 久久国产V一级毛多内射| 免费黄色国产视频| 不卡国产视频第一页| 99re热精品视频国产免费| 国产精品毛片一区视频播| a级毛片免费看| 少妇高潮惨叫久久久久久| 成人小视频在线观看免费| 国产剧情无码视频在线观看| 国内精品九九久久久精品| 91av国产在线| 国产黄在线观看| 国产在线观看一区精品| 欧美一级在线看| 国产JIZzJIzz视频全部免费| 天天爽免费视频| 在线观看免费AV网| 亚洲国产91人成在线| 国产在线观看99| 蝴蝶伊人久久中文娱乐网| 99九九成人免费视频精品| 五月婷婷中文字幕| 亚洲综合色区在线播放2019| 玩两个丰满老熟女久久网| 国产自在线拍| 欧美成人a∨视频免费观看| jizz国产视频| 国产精品大尺度尺度视频| 手机在线看片不卡中文字幕| 国产三级视频网站| 四虎成人精品| 中文毛片无遮挡播放免费| 免费三A级毛片视频| 国内自拍久第一页| 国产一区二区三区夜色| 精品欧美日韩国产日漫一区不卡| 特级毛片免费视频| 久久99热这里只有精品免费看| 无码一区二区波多野结衣播放搜索 | 中文字幕无码av专区久久| 亚洲中文字幕无码mv| 国产成人做受免费视频| 亚洲欧美自拍一区| 精品人妻一区无码视频| 高h视频在线| 亚洲黄色高清| 激情综合网激情综合| 综合久久五月天| 久久男人视频| 国产丰满大乳无码免费播放| 亚洲黄色片免费看| 亚洲无码精品在线播放| 青草免费在线观看| 国产黄网永久免费| 国产成人欧美| 国产精品亚欧美一区二区| 亚洲码在线中文在线观看| 精品国产香蕉在线播出| 99在线视频精品| 久草美女视频| 人妻中文字幕无码久久一区| 黄色免费在线网址| 思思热在线视频精品| 国产精品嫩草影院av| 国产簧片免费在线播放| 99视频精品全国免费品| 免费一级毛片| 不卡无码网| 亚洲国产成人麻豆精品| 国产精品妖精视频| 午夜福利无码一区二区| 在线欧美日韩| 91久久国产综合精品女同我| 成人亚洲天堂| 女人毛片a级大学毛片免费| 欧美中文一区| 日韩在线2020专区| 国产精品无码久久久久AV| 国产精品香蕉在线| 伊伊人成亚洲综合人网7777|