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

基于Shibboleth和SAML的跨校統一身份認證系統

2010-05-14 11:57:36孫思緯夏洪山
網絡安全與數據管理 2010年5期
關鍵詞:資源用戶服務

孫思緯,夏洪山

(南京航空航天大學 民航學院,江蘇 南京 210016)

隨著技術的發展,越來越多的大學、公司以及政府機構都通過網絡對外提供資源、服務,并且彼此協作日益緊密、信息共享日益頻繁。例如,大學之間的“跨校選課”、“共享圖書資源”等。因此簡化這些業務中身份認證的流程,同時做到安全高效成為迫切需要解決的問題。

1 Shibboleth簡介

Shibboleth是Internet2/MACE項目之一,得到了IBM的技術和資金支持。Shibboleth是一個使用標準語言描述的體系結構和策略框架,支持安全Web資源和服務共享[1]。

Shibboleth主要針對分布式資源如何有效訪問的問題。與其他系統的區別在于Shibboleth將認證模塊放在客戶端,資源提供者只需進行少量的驗證工作,極大地減輕了資源提供者的負擔,簡化了訪問程序、提高了訪問資源的效率、安全性得到了保證。在系統擴展方面,Shibboleth采用了SAML規范,同時也在SAML上作了改進,保證了系統的可擴展性。

Shibboleth主要由3個部分組成:

(1)Origin

對應Identity Provider(IdP),身份提供端。主要作用是向資源提供者提供用戶的屬性,以便使資源服務器根據其屬性對操作進行判決響應。

(2)Target

對應 Resource/Service Provider,資源/服務提供端。主要作用是響應用戶的資源請求,并向該用戶所在的Origin查詢用戶的屬性,然后根據屬性做出允許或拒絕訪問資源的決策。

(3)WAYF

WAYF是Where Are You From的首字母簡稱。SHIRE使用WAYF來進行大部分初始化工作。WAYF組件知道每一個Origin端句柄服務器的名稱和位置。其主要功能是將Origin端站點名稱映射到HS信息上。WAYF的另一個作用是為用戶查詢HS并將句柄發送給SHIRE。WAYF通過與用戶打交道,詢問“你從哪來”,用戶輸入組織名稱,WAYF便在用戶組織的名稱與HS的URL之間進行映射。

2 SAML簡介

安全斷言標記語言SAML(Security Assertion Markup Language)提供了一個健壯的、可擴展的數據格式集,在各種環境下交換數據和身份識別信息。SAML將所有與檢索、傳輸和共享安全信息相關的功能標準轉化為以下形式[2]:

(1)為用戶提供XML安全信息格式,請求、傳輸信息的格式。

(2)定義這些消息與SOAP(Simple Object Access Protocol)等協議協作的方式。

(3)為像 Web SSO(Single Sign-On)類似的常見用例定義精確的消息交換。

(4)支持多種隱私保護機制,包括在不披露用戶身份的情況下確定用戶屬性的功能。

(5)詳述在 Unix、Microsoft Windows、X509、LDAP、DCE和XCML技術所提供的格式中處理身份信息的方法。

(6)提供系統的元數據機制,使得所有參與的系統能就所支持的SAML選項進行通信。

SAML的設計特別關注了靈活性,當遇到標準尚未涵蓋的需求時,可以擴展。其所描述的環境包括3個角色,如圖1所示,即信任方(Service Provider)、斷言方(I-dentity Provider)和主題(與身份信息相關的用戶)。

圖1 SAML中的角色

IdP與SP通過SAML消息傳送用戶的身份認證和屬性等信息。SAML消息定義了2種重要的語句:(1)身份驗證語句,關于該主題在何時何地、使用何種身份進行過驗證的報告。SAML提供了超過20種不同身份驗證方法的詳細定義。身份驗證語句支持SSO,其中IdP代表SP進行登錄。(2)屬性語句,包含了與主題有關的屬性。屬性語句中典型的屬性是組和角色。

SAML定義了一組XML格式的請求和應答消息,SP可使用這些消息直接獲取斷言[3]。請求會指定SP需要的信息,例如“所有張曉明的屬性”,應答消息返回1個或多個匹配請求的斷言。為使不同的產品能夠交互操作,SAML的SOAP綁定詳細說明了怎樣在SOAP消息體中傳送信息。SAML還為支持聯盟身份環境提供了其他許多有用的機制:(1)協議允許SP確定通過將來自幾個可能IdP的特定用戶請求指示到何處;(2)協議允許2個IdP將他們各自擁有的同一個用戶賬戶關聯在一起(需用戶許可)。另外,SAML還支持加密全部斷言(也可選擇加密其敏感部分)、指定一個斷言的目標用戶等功能。

3 Shibboleth在本系統中的作用

(1)系統將基于 Shibboleth的框架進行開發,但不完全使用Shibboleth,需要根據用戶的實際需求對其進行改造。

(2)Shibboleth構成跨域統一身份認證系統的核心部分,包括IdP、SP和WAYF組成的整個跨域統一身份認證系統的架構。

(3)通過將Shibboleth的IdP組件與各個學校的統一身份認證系統集成,將身份數據的管理和身份憑據的認證交給各個學校自身的統一身份認證系統。跨域認證中心只是作為跨域認證的索引,并不維護任何身份數據。

4 跨校統一身份認證系統的實現

4.1 跨校統一身份認證系統設計

該身份認證系統可分為3個子系統,身份提供方IdP(Identity Provider)、服 務 提 供 方 SP(Service Provider)和身份聯盟中心FC(Federation Centre)。這3個子系統在實現聯盟認證時,工作原理與Shibboleth基本相同。下面從實現用戶身份聯盟認證的角度介紹這3個子系統的結構、工作機制以及交互方式。

4.1.1 身份提供方(IdP)

IdP是負責認證用戶身份和提供用戶認證、屬性信息的實體,它需要維護3個模塊,即單點登錄認證系統、數據庫系統和Shibboleth的IdP組件。

4.1.1.1 單點登錄認證系統

單點登錄認證系統(SingleSign-On Authentication System)是源組織的SSO認證系統,負責響應用戶的身份認證請求并生成SSO Token[4]。加入身份聯盟的先決條件就是源組織已經可以實現統一身份認證,在此基礎上,源組織無須對SSO認證系統做出變動。目前使用較多 SSO系統有 SUN、Oracle、IBM、Microsoft等廠商推出的統一身份認證系統,身份聯盟系統都將提供很好的兼容。

4.1.1.2 認證數據庫和用戶屬性數據庫

認證數據庫(Authentication DB)是源組織SSO認證系統的一部分,為SSO提供認證數據并直接服務于單點登錄認證系統。

用戶屬性數據庫(User DB)主要為Shibboleth的IdP組件服務,它存儲了身份聯盟系統所需要的用戶屬性信息。

4.1.1.3 Shibboleth的IdP組件

Shibooleth的IdP組件主要工作單元分為句柄服務器HS(HandleServer)和屬性中心 AA(AttributeAuthority)2個部分。

(1)句柄服務器(HS)

用戶通過源組織的SSO認證后,HS根據用戶瀏覽器中cookie值頒發身份聯盟的認證句柄作為用戶在聯盟中的身份憑據。獲得認證句柄的過程既可以通過用戶瀏覽器的Browser/POST和Browser/Artifact方式來實現,也可以通過SAML中的身份驗證斷言(Authentication Assertion)來 實 現 。 SAML 定 義 了 字 段 的消息,通過它可以得到用戶身份認證的斷言(Assertion),從中獲取句柄信息。用戶獲得句柄后就獲得了訪問聯盟中服務提供方的合法身份。

(2)屬性中心(AA)

AA為服務提供方(SP)提供用戶相關的屬性信息,這些信息又可分類為用戶固有屬性信息和用戶訪問策略信息。用戶固有屬性信息存儲在用戶屬性數據庫(User DB)的數據中;用戶訪問策略信息則是由屬性中心的屬性釋放策略ARP(Attribute Release Policy)提供的XML配置文件,包含了指定用戶是否可以訪問指定資源的決策信息。ARP文件定義了一系列的默認策略,同時也支持用戶配置策略,用戶配置策略的制定工作將統一交由身份聯盟中心(FC)負責。

AA與SP通信也是基于SAML系統。服務提供方的屬性請求器(Attribute Requester)可以利用SAML中定義的 包 含 字 段 的 消息來發送屬性請求,屬性中心通過來確認屬性請求器的身份是否合法(該步驟可選),如果屬性請求器是可信的,屬性中心將發送包含字段的斷言作為應答。屬性請求器解析斷言就可以得到SP所需要的用戶固有屬性或訪問策略定義。

4.1.2 服務提供方(SP)

SP是提供基于Web的服務、應用或資源的實體,通過安全的途徑實現資源的授權訪問和個性化服務。主要包含2個模塊:mod_shib模塊和SHAR模塊。

4.1.2.1 mod_shib模塊

mod_shib是Shibboleth用于集成到SP Apache服務器的一個擴展模塊,負責根據IdP提供的用戶訪問策略和本地訪問控制策略對資源進行訪問控制。

4.1.2.2 SHAR模塊

SHAR(Shibboleth Attribute Requester)是運行在服務提供方服務器上的一個后臺程序,負責向IdP請求用戶屬性相關的信息并處理響應消息。實際上SHAR是與IdP的屬性中心AA配合工作的,當SP需要用戶屬性信息時,SHAR將以通過認證后獲得的句柄(Handle)為憑據,向AA發送屬性請求的SAML消息,AA返回屬性查詢結果,交由SHAR解析作為mod_shib模塊實現訪問控制的依據。

4.1.3 身份聯盟中心(FC)

FC的主要功能是用于用戶的源組織選擇,即當用戶訪問非源組織資源需要認證時,將由FC提供源組織定位服務。該功能主要基于Shibboleth的ServiceDis covery組件,也可稱為 WAYF服務。另外,本項目中的FC還根據需求提出了資源注冊、計費、審計等輔助功能。

WAYF服務在Shibboleth結構中是一個可選組件,采用集中的方式讓用戶選擇自己所在的源組織。

WAYF服務必須支持Shibboleth的認證請求方式,即瀏覽器Browser/POST和Browser/Artifact認證請求方式或者SAML認證請求方式,目的是為了協調源組織的SSO服務和身份聯盟系統中的SSO服務。WAYF實際上充當了各源組織SSO服務的中介,使各源組織的SSO在整個身份聯盟系統中都具有有效性。

4.2 跨校統一身份認證系統框架

4.2.1 全局架構設計

(1)每個高校都具有雙重身份:既是服務提供者(SP),又是身份提供者(IdP)。

(2)存在一個 Discovery服務(即 WAYF服務),當用戶沒有經過認證而訪問SP時,由Discovery確定用戶應該到哪個IdP去進行身份驗證。

整體邏輯架構[5]說明如圖2所示。

圖2 身份聯盟系統全局架構

4.2.2 單一高校內部的系統架構設計

為了更清楚地說明整個邏輯架構,圖3所示為各個高校的內部邏輯架構圖。

高校內部邏輯架構[6]說明:

圖3 單一高校的內部架構

(1)高校中的IdP基于原有的身份認證系統,在原有系統基礎上加入2個 IdP組件:認證憑據和屬性憑據。(2)高校的SP提供并保護高校的受控資源,在受控資源之上增加3個SP組件:斷言接受器、屬性請求器和訪問控制器。1個SP可以保護多個受控資源。

4.2.3 聯盟認證過程

4.2.3.1 用戶未登錄時訪問高校A的資源(系統視角)

場景:用戶第一次訪問高校A的受控資源如圖4、圖5、圖6所示。

圖4 用戶訪問某一高校受控資源

圖5 用戶訪問某一高校的Idp

圖6 用戶進行身份認證的過程

用戶訪問某一高校受控資源步驟如下:

(1)用戶向高校A提出訪問請求。

(2)高校A的斷言接受器發現該用戶未認證,將請求重定向給聯盟認證中心的WAYF服務器。

(3)WAYF服務器將學校選擇界面發送給用戶,讓用戶選擇所能認證的IdP。

用戶訪問某一高交的Jdp步驟如下:

(1)用戶選擇高校A后,提交給WAYF。

(2)WAYF重定向到高校A的認證服務。

(3)高校A的認證服務發現用戶尚未登錄,將請求定向到SSO服務。

(4)SSO服務向用戶發出高校A的認證登錄界面。

用戶進行身份認證的過程步驟如下:

(1)用戶輸入用戶名口令,向高校A的IdP認證登錄。

(2)高校A的SSO服務對用戶認證,通過后生成Ticket(用戶A通過認證后的證明),交給瀏覽器。

(3)請求重定向到高校A的認證服務,該認證服務到SSO服務上去驗證之前生成的Ticket。

(4)SSO服務驗證 Ticket,通過后將用戶的 userId交給認證服務。

(5)認證服務將userId交給認證憑據。

(6)認證憑據為該用戶產生一個nameId,這是整個聯盟認證過程中用戶的唯一標識,并將該nameId返回給認證服務。

(7)認證服務將nameId發還給瀏覽器,瀏覽器再次訪問高校A的SP。

(8)高校A的斷言接受器接受認證后用戶的請求,傳給屬性請求器。

(9)屬性請求器根據來訪用戶的nameId,向認證該用戶的IdP的屬性憑據請求用戶的屬性。

(10)高校A的屬性憑據根據該nameId從認證憑據處獲得用戶真實的userId。

(11)屬性憑據根據獲得的userId從用戶數據庫中獲得用戶身份信息的屬性值,將屬性值返回給高校A的屬性請求器。

(12)高校A的屬性請求器將屬性值發送給訪問控制器。

(13)訪問控制器根據用戶的屬性決定用戶可訪問的受控資源,并將結果返回給用戶。

4.2.3.2 用戶未登錄時訪問高校A資源(用戶視角)

用戶可視認證過程如圖7所示。

訪問高校A資源的整個過程如下:

(1)用戶向高校A訪問受控資源。

(2)用戶收到回復,要求其選擇所在的高校。

(3)用戶選擇其所在的高校。

(4)用戶收到其所在高校的登錄認證頁面。

(5)用戶填入用戶名密碼,并提交。

(6)用戶獲得所需要的受控資源。

本文參考Shibboleth的架構,完成了跨校身份聯盟系統的設計方案,實現用戶“異地訪問—本地認證”的功能,避免了異地認證的繁瑣,簡化了業務流程。身份聯盟各子系統交互采用SAML標準,有效地保證了系統通信的安全,保障了用戶的隱私,很好地滿足了應用管理的需求,為高校間的合作和信息交流提供了一個良好的平臺。

圖7 訪問高校A資源(用戶視角)

[1]Shibboleth support.http∶//shibboleth.internet2.edu/support,2009.

[2]CANTOR S,HITCH F.Bindings for the OASIS security assertion markup language(SAML)V2.0 S1[M].OASIS Standard.2005.

[3]陳科,余堃,黃迪明.基于安全斷言標記語言輔件技術的單點登錄系統分析 [J].計算機應用,2005,25(11)∶2574-2576.

[4]CHAO Y Y.Weakest link attack on single sign-on and its case in SAML V2.0 Web SSO[J].Computational Science and its Applications, 2006,3982∶507-516.

[5]宋志強,陳懷楚,沈錫臣.校園網統一身份認證結構及基于此結構的應用漫游的實現[J].計算機工程與應用,2002,38(10)∶188-191.

[6]陳小云.統一身份認證系統的研究與實現[D].成都∶西南交通大學,2007.

猜你喜歡
資源用戶服務
基礎教育資源展示
一樣的資源,不一樣的收獲
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
資源回收
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 亚洲福利一区二区三区| 精品国产网站| 国产人人射| 国产精品冒白浆免费视频| 日韩精品高清自在线| 丝袜亚洲综合| jizz国产视频| 国产成人久久777777| 国内精品91| 久久这里只精品国产99热8| 亚洲第一综合天堂另类专| 亚洲中文精品人人永久免费| 日韩黄色大片免费看| 欧美影院久久| 久久久久青草线综合超碰| 真实国产精品vr专区| 福利在线免费视频| 香蕉综合在线视频91| 一区二区在线视频免费观看| 曰韩人妻一区二区三区| 国产视频 第一页| 国产系列在线| 国产午夜精品鲁丝片| 国产精品久久久久久久久久98| 国产农村妇女精品一二区| 国产一级精品毛片基地| 久久香蕉欧美精品| 亚洲AV人人澡人人双人| 精品人妻AV区| 91精品免费高清在线| 国产 日韩 欧美 第二页| 欧美不卡视频一区发布| 久久久精品无码一区二区三区| 99精品久久精品| 亚洲成人黄色在线观看| 久久婷婷五月综合97色| 香蕉视频在线精品| 国产微拍一区| 午夜精品区| 国产成人精品综合| 夜夜操天天摸| 国产剧情伊人| 国产成人超碰无码| 国产好痛疼轻点好爽的视频| 亚洲成a人片在线观看88| 五月天香蕉视频国产亚| 国产免费久久精品99re不卡| 伊人激情综合网| 欧美精品一区二区三区中文字幕| 九九热免费在线视频| 91网址在线播放| 欧美亚洲日韩中文| 日韩人妻无码制服丝袜视频| 1024你懂的国产精品| 欧美a在线视频| 久久99热这里只有精品免费看| 996免费视频国产在线播放| 亚洲色欲色欲www网| 精品视频免费在线| 日本久久网站| 国产精品99在线观看| 四虎成人在线视频| 国产日韩欧美中文| 亚洲中文字幕无码mv| 亚洲国产清纯| 国产精品一区二区不卡的视频| 国产精品成人一区二区不卡| 无码精品国产dvd在线观看9久| 日韩免费毛片视频| 午夜影院a级片| 亚洲精品va| 全免费a级毛片免费看不卡| 国产在线精品99一区不卡| 午夜日韩久久影院| 91视频精品| 丰满的少妇人妻无码区| 成人年鲁鲁在线观看视频| 中文字幕无线码一区| 成人免费午夜视频| 国产毛片片精品天天看视频| 国产精品.com| 欧美翘臀一区二区三区|