本文以某新聞單位多媒體數(shù)據(jù)庫(kù)系統(tǒng)為例,提出建立企業(yè)用戶認(rèn)證中心,,實(shí)現(xiàn)基于安全策略的統(tǒng)一用戶管理,、認(rèn)證和單點(diǎn)登錄,解決用戶在同時(shí)使用多個(gè)應(yīng)用系統(tǒng)時(shí)所遇到的重復(fù)登錄問(wèn)題,。 隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,,企業(yè)內(nèi)部的應(yīng)用系統(tǒng)越來(lái)越多,。比如在媒體行業(yè),常見(jiàn)的應(yīng)用系統(tǒng)就有采編系統(tǒng),、排版系統(tǒng),、印刷系統(tǒng)、廣告管理系統(tǒng),、財(cái)務(wù)系統(tǒng),、辦公自動(dòng)化系統(tǒng)、決策支持系統(tǒng),、客戶關(guān)系管理系統(tǒng)和網(wǎng)站發(fā)布系統(tǒng)等,。由于這些系統(tǒng)互相獨(dú)立,用戶在使用每個(gè)應(yīng)用系統(tǒng)之前都必須按照相應(yīng)的系統(tǒng)身份進(jìn)行登錄,,為此用戶必須記住每一個(gè)系統(tǒng)的用戶名和密碼,,這給用戶帶來(lái)了不少麻煩。特別是隨著系統(tǒng)的增多,,出錯(cuò)的可能性就會(huì)增加,受到非法截獲和破壞的可能性也會(huì)增大,,安全性就會(huì)相應(yīng)降低,。針對(duì)于這種情況,統(tǒng)一用戶認(rèn)證,、單點(diǎn)登錄等概念應(yīng)運(yùn)而生,,同時(shí)不斷地被應(yīng)用到企業(yè)應(yīng)用系統(tǒng)中。 統(tǒng)一用戶管理的基本原理 一般來(lái)說(shuō),,每個(gè)應(yīng)用系統(tǒng)都擁有獨(dú)立的用戶信息管理功能,,用戶信息的格式、命名與存儲(chǔ)方式也多種多樣,。當(dāng)用戶需要使用多個(gè)應(yīng)用系統(tǒng)時(shí)就會(huì)帶來(lái)用戶信息同步問(wèn)題,。用戶信息同步會(huì)增加系統(tǒng)的復(fù)雜性,增加管理的成本,。 例如,,用戶X需要同時(shí)使用A系統(tǒng)與B系統(tǒng),就必須在A系統(tǒng)與B系統(tǒng)中都創(chuàng)建用戶X,,這樣在A,、B任一系統(tǒng)中用戶X的信息更改后就必須同步至另一系統(tǒng)。如果用戶X需要同時(shí)使用10個(gè)應(yīng)用系統(tǒng),,用戶信息在任何一個(gè)系統(tǒng)中做出更改后就必須同步至其他9個(gè)系統(tǒng),。用戶同步時(shí)如果系統(tǒng)出現(xiàn)意外,還要保證數(shù)據(jù)的完整性,,因而同步用戶的程序可能會(huì)非常復(fù)雜,。 解決用戶同步問(wèn)題的根本辦法是建立統(tǒng)一用戶管理系統(tǒng)(UUMS),。UUMS統(tǒng)一存儲(chǔ)所有應(yīng)用系統(tǒng)的用戶信息,應(yīng)用系統(tǒng)對(duì)用戶的相關(guān)操作全部通過(guò)UUMS完成,,而授權(quán)等操作則由各應(yīng)用系統(tǒng)完成,,即統(tǒng)一存儲(chǔ)、分布授權(quán),。UUMS應(yīng)具備以下基本功能: 1.用戶信息規(guī)范命名,、統(tǒng)一存儲(chǔ),用戶ID全局惟一,。用戶ID猶如身份證,,區(qū)分和標(biāo)識(shí)了不同的個(gè)體。 2.UUMS向各應(yīng)用系統(tǒng)提供用戶屬性列表,,如姓名,、電話、地址,、郵件等屬性,,各應(yīng)用系統(tǒng)可以選擇本系統(tǒng)所需要的部分或全部屬性。 3.應(yīng)用系統(tǒng)對(duì)用戶基本信息的增加,、修改,、刪除和查詢等請(qǐng)求由UUMS處理。 4.應(yīng)用系統(tǒng)保留用戶管理功能,,如用戶分組,、用戶授權(quán)等功能。 5.UUMS應(yīng)具有完善的日志功能,,詳細(xì)記錄各應(yīng)用系統(tǒng)對(duì)UUMS的操作,。 統(tǒng)一用戶認(rèn)證是以UUMS為基礎(chǔ),對(duì)所有應(yīng)用系統(tǒng)提供統(tǒng)一的認(rèn)證方式和認(rèn)證策略,,以識(shí)別用戶身份的合法性,。統(tǒng)一用戶認(rèn)證應(yīng)支持以下幾種認(rèn)證方式: 1. 匿名認(rèn)證方式: 用戶不需要任何認(rèn)證,可以匿名的方式登錄系統(tǒng),。 2. 用戶名/密碼認(rèn)證: 這是最基本的認(rèn)證方式,。 3. PKI/CA數(shù)字證書(shū)認(rèn)證: 通過(guò)數(shù)字證書(shū)的方式認(rèn)證用戶的身份。 4. IP地址認(rèn)證: 用戶只能從指定的IP地址或者IP地址段訪問(wèn)系統(tǒng),。 5. 時(shí)間段認(rèn)證: 用戶只能在某個(gè)指定的時(shí)間段訪問(wèn)系統(tǒng),。 6. 訪問(wèn)次數(shù)認(rèn)證: 累計(jì)用戶的訪問(wèn)次數(shù),使用戶的訪問(wèn)次數(shù)在一定的數(shù)值范圍之內(nèi),。 以上認(rèn)證方式應(yīng)采用模塊化設(shè)計(jì),,管理員可靈活地進(jìn)行裝載和卸載,同時(shí)還可按照用戶的要求方便地?cái)U(kuò)展新的認(rèn)證模塊。 認(rèn)證策略是指認(rèn)證方式通過(guò)與,、或,、非等邏輯關(guān)系組合后的認(rèn)證方式。管理員可以根據(jù)認(rèn)證策略對(duì)認(rèn)證方式進(jìn)行增,、刪或組合,,以滿足各種認(rèn)證的要求。比如,,某集團(tuán)用戶多人共用一個(gè)賬戶,,用戶通過(guò)用戶名密碼訪問(wèn)系統(tǒng),訪問(wèn)必須限制在某個(gè)IP地址段上,。該認(rèn)證策略可表示為: 用戶名/密碼“與”IP地址認(rèn)證,。 PKI/CA數(shù)字證書(shū)認(rèn)證雖不常用,但卻很有用,,通常應(yīng)用在安全級(jí)別要求較高的環(huán)境中,。PKI(Public Key Infrastructure)即公鑰基礎(chǔ)設(shè)施是利用公鑰理論和數(shù)字證書(shū)來(lái)確保系統(tǒng)信息安全的一種體系。 在公鑰體制中,,密鑰成對(duì)生成,,每對(duì)密鑰由一個(gè)公鑰和一個(gè)私鑰組成,公鑰公布于眾,,私鑰為所用者私有,。發(fā)送者利用接收者的公鑰發(fā)送信息,稱(chēng)為數(shù)字加密,,接收者利用自己的私鑰解密; 發(fā)送者利用自己的私鑰發(fā)送信息,稱(chēng)為數(shù)字簽名,,接收者利用發(fā)送者的公鑰解密,。PKI通過(guò)使用數(shù)字加密和數(shù)字簽名技術(shù),保證了數(shù)據(jù)在傳輸過(guò)程中的機(jī)密性(不被非法授權(quán)者偷看),、完整性(不能被非法篡改)和有效性(數(shù)據(jù)不能被簽發(fā)者否認(rèn)),。 數(shù)字證書(shū)有時(shí)被稱(chēng)為數(shù)字身份證,數(shù)字證書(shū)是一段包含用戶身份信息,、用戶公鑰信息以及身份驗(yàn)證機(jī)構(gòu)數(shù)字簽名的數(shù)據(jù),。身份驗(yàn)證機(jī)構(gòu)的數(shù)字簽名可以確保證書(shū)信息的真實(shí)性。 完整的PKI系統(tǒng)應(yīng)具有權(quán)威認(rèn)證機(jī)構(gòu)CA(Certificate Authority),、證書(shū)注冊(cè)系統(tǒng)RA(Registration Authority),、密鑰管理中心KMC(Key Manage Center)、證書(shū)發(fā)布查詢系統(tǒng)和備份恢復(fù)系統(tǒng),。CA是PKI的核心,,負(fù)責(zé)所有數(shù)字證書(shū)的簽發(fā)和注銷(xiāo); RA接受用戶的證書(shū)申請(qǐng)或證書(shū)注銷(xiāo)、恢復(fù)等申請(qǐng),并對(duì)其進(jìn)行審核; KMC負(fù)責(zé)加密密鑰的產(chǎn)生,、存貯,、管理、備份以及恢復(fù); 證書(shū)發(fā)布查詢系統(tǒng)通常采用OCSP(Online Certificate Status Protocol,,在線證書(shū)狀態(tài)協(xié)議)協(xié)議提供查詢用戶證書(shū)的服務(wù),,用來(lái)驗(yàn)證用戶簽名的合法性; 備份恢復(fù)系統(tǒng)負(fù)責(zé)數(shù)字證書(shū)、密鑰和系統(tǒng)數(shù)據(jù)的備份與恢復(fù),。 單點(diǎn)登錄 單點(diǎn)登錄(SSO,,Single Sign-on)是一種方便用戶訪問(wèn)多個(gè)系統(tǒng)的技術(shù),用戶只需在登錄時(shí)進(jìn)行一次注冊(cè),,就可以在多個(gè)系統(tǒng)間自由穿梭,,不必重復(fù)輸入用戶名和密碼來(lái)確定身份。單點(diǎn)登錄的實(shí)質(zhì)就是安全上下文(Security Context)或憑證(Credential)在多個(gè)應(yīng)用系統(tǒng)之間的傳遞或共享,。當(dāng)用戶登錄系統(tǒng)時(shí),,客戶端軟件根據(jù)用戶的憑證(例如用戶名和密碼)為用戶建立一個(gè)安全上下文,安全上下文包含用于驗(yàn)證用戶的安全信息,,系統(tǒng)用這個(gè)安全上下文和安全策略來(lái)判斷用戶是否具有訪問(wèn)系統(tǒng)資源的權(quán)限,。遺憾的是J2EE規(guī)范并沒(méi)有規(guī)定安全上下文的格式,因此不能在不同廠商的J2EE產(chǎn)品之間傳遞安全上下文,。
目前業(yè)界已有很多產(chǎn)品支持SSO,,如IBM的WebSphere和BEA的WebLogic,但各家SSO產(chǎn)品的實(shí)現(xiàn)方式也不盡相同,。WebSphere通過(guò)Cookie記錄認(rèn)證信息,,WebLogic則是通過(guò)Session共享認(rèn)證信息。Cookie是一種客戶端機(jī)制,,它存儲(chǔ)的內(nèi)容主要包括: 名字,、值、過(guò)期時(shí)間,、路徑和域,,路徑與域合在一起就構(gòu)成了Cookie的作用范圍,因此用Cookie方式可實(shí)現(xiàn)SSO,,但域名必須相同; Session是一種服務(wù)器端機(jī)制,,當(dāng)客戶端訪問(wèn)服務(wù)器時(shí),服務(wù)器為客戶端創(chuàng)建一個(gè)惟一的SessionID,,以使在整個(gè)交互過(guò)程中始終保持狀態(tài),,而交互的信息則可由應(yīng)用自行指定,因此用Session方式實(shí)現(xiàn)SSO,,不能在多個(gè)瀏覽器之間實(shí)現(xiàn)單點(diǎn)登錄,,但卻可以跨域。 實(shí)現(xiàn)SSO有無(wú)標(biāo)準(zhǔn)可尋?如何使業(yè)界產(chǎn)品之間,、產(chǎn)品內(nèi)部之間信息交互更標(biāo)準(zhǔn),、更安全呢?基于此目的,,OASIS(結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織)提出了SAML解決方案(有關(guān)SAML的知識(shí)參看鏈接),。 用戶認(rèn)證中心實(shí)際上就是將以上所有功能、所有概念形成一個(gè)整體,,為企業(yè)提供一套完整的用戶認(rèn)證和單點(diǎn)登錄解決方案,。一個(gè)完整的用戶認(rèn)證中心應(yīng)具備以下功能: 1. 統(tǒng)一用戶管理。實(shí)現(xiàn)用戶信息的集中管理,,并提供標(biāo)準(zhǔn)接口,。 2. 統(tǒng)一認(rèn)證。用戶認(rèn)證是集中統(tǒng)一的,,支持PKI,、用戶名/密碼、B/S和C/S等多種身份認(rèn)證方式,。
3. 單點(diǎn)登錄,。支持不同域內(nèi)多個(gè)應(yīng)用系統(tǒng)間的單點(diǎn)登錄。 用戶認(rèn)證中心提供了統(tǒng)一認(rèn)證的功能,,那么用戶認(rèn)證中心如何提供統(tǒng)一授權(quán)的功能呢,?這就是授權(quán)管理中,其中應(yīng)用最多的就是PMI,。 PMI(Privilege Management Infrastructure,,授權(quán)管理基礎(chǔ)設(shè)施)的目標(biāo)是向用戶和應(yīng)用程序提供授權(quán)管理服務(wù),提供用戶身份到應(yīng)用授權(quán)的映射功能,,提供與實(shí)際應(yīng)用處理模式相對(duì)應(yīng)的,、與具體應(yīng)用系統(tǒng)開(kāi)發(fā)和管理無(wú)關(guān)的授權(quán)和訪問(wèn)控制機(jī)制,簡(jiǎn)化具體應(yīng)用系統(tǒng)的開(kāi)發(fā)與維護(hù),。PMI是屬性證書(shū)(Attribute Certificate),、屬性權(quán)威(Attribute Authority),、屬性證書(shū)庫(kù)等部件的集合體,,用來(lái)實(shí)現(xiàn)權(quán)限和證書(shū)的產(chǎn)生、管理,、存儲(chǔ),、分發(fā)和撤銷(xiāo)等功能。 PMI以資源管理為核心,,對(duì)資源的訪問(wèn)控制權(quán)統(tǒng)一交由授權(quán)機(jī)構(gòu)統(tǒng)一處理,,即由資源的所有者來(lái)進(jìn)行訪問(wèn)控制。同公鑰基礎(chǔ)設(shè)施PKI相比,兩者主要區(qū)別在于: PKI證明用戶是誰(shuí),,而PMI證明這個(gè)用戶有什么權(quán)限,,能干什么,而且PMI可以利用PKI為其提供身份認(rèn)證,。 單點(diǎn)登錄通用設(shè)計(jì)模型 圖2是統(tǒng)一用戶認(rèn)證和單點(diǎn)登錄通用設(shè)計(jì)模型,,它由以下產(chǎn)品組成: 1. PKI體系: 包括CA服務(wù)器、RA服務(wù)器,、KMC和OCSP服務(wù)器,。 2. AA管理服務(wù)器: 即認(rèn)證(Authentication)和授權(quán)(Authorization)服務(wù)器,它為系統(tǒng)管理員提供用戶信息,、認(rèn)證和授權(quán)的管理,。 3. UUMS模塊: 為各應(yīng)用系統(tǒng)提供UUMS接口。 4. SSO: 包括SSO代理和SSO服務(wù)器,。SSO代理部署在各應(yīng)用系統(tǒng)的服務(wù)器端,,負(fù)責(zé)截獲客戶端的SSO請(qǐng)求,并轉(zhuǎn)發(fā)給SSO服務(wù)器,,如果轉(zhuǎn)發(fā)的是OCSP請(qǐng)求,,則SSO服務(wù)器將其轉(zhuǎn)發(fā)給OCSP服務(wù)器。在C/S方式中,,SSO代理通常部署在客戶端,。 5. PMI: 包括PMI代理和PMI服務(wù)器。PMI代理部署在各應(yīng)用系統(tǒng)的服務(wù)器端,,負(fù)責(zé)截獲客戶端的PMI請(qǐng)求,,并轉(zhuǎn)發(fā)給PMI服務(wù)器。 6. LDAP服務(wù)器: 統(tǒng)一存儲(chǔ)用戶信息,、證書(shū)和授權(quán)信息,。 為判斷用戶是否已經(jīng)登錄系統(tǒng),SSO服務(wù)器需要存儲(chǔ)一張用戶會(huì)話(Session)表,,以記錄用戶登錄和登出的時(shí)間,,SSO服務(wù)器通過(guò)檢索會(huì)話表就能夠知道用戶的登錄情況,該表通常存儲(chǔ)在數(shù)據(jù)庫(kù)中,。AA系統(tǒng)提供了對(duì)會(huì)話的記錄,、監(jiān)控和撤消等管理功能。為保證穩(wěn)定與高效,,SSO,、PMI和OCSP可部署兩套或多套應(yīng)用,同時(shí)提供服務(wù),。 鏈接 SAML SAML(Security Assertion Markup Language,,安全性斷言標(biāo)記語(yǔ)言)是一種基于XML的框架,,主要用于在各安全系統(tǒng)之間交換認(rèn)證、授權(quán)和屬性信息,,它的主要目標(biāo)之一就是SSO,。在SAML框架下,無(wú)論用戶使用哪種信任機(jī)制,,只要滿足SAML的接口,、信息交互定義和流程規(guī)范,相互之間都可以無(wú)縫集成,。SAML規(guī)范的完整框架及有關(guān)信息交互格式與協(xié)議使得現(xiàn)有的各種身份鑒別機(jī)制(PKI,、Kerberos和口令)、各種授權(quán)機(jī)制(基于屬性證書(shū)的PMI,、ACL,、Kerberos的訪問(wèn)控制)通過(guò)使用統(tǒng)一接口實(shí)現(xiàn)跨信任域的互操作,便于分布式應(yīng)用系統(tǒng)的信任和授權(quán)的統(tǒng)一管理,。 SAML并不是一項(xiàng)新技術(shù),。確切地說(shuō),它是一種語(yǔ)言,,是一種XML描述,,目的是允許不同安全系統(tǒng)產(chǎn)生的信息進(jìn)行交換。SAML規(guī)范由以下部分組成: 1. 斷言與協(xié)議: 定義XML格式的斷言的語(yǔ)法語(yǔ)義以及請(qǐng)求和響應(yīng)協(xié)議,。SMAL主要有三種斷言: 身份認(rèn)證斷言,、屬性斷言和訪問(wèn)授權(quán)斷言。 2. 綁定與配置文件: 從SAML請(qǐng)求和響應(yīng)消息到底層通信協(xié)議如SOAP或SMTP的映射,。 3. 一致性規(guī)范: 一致性規(guī)范設(shè)置了一種基本標(biāo)準(zhǔn),,必須滿足這一SAML標(biāo)準(zhǔn)的實(shí)現(xiàn)才能夠稱(chēng)為一致性實(shí)現(xiàn)。這樣有助于提高互操作性和兼容性,。 4. 安全和保密的問(wèn)題: SAML體系結(jié)構(gòu)中的安全風(fēng)險(xiǎn),,具體而言就是SAML如何應(yīng)對(duì)這些風(fēng)險(xiǎn)以及無(wú)法解決的風(fēng)險(xiǎn)。 要注意的是,,SAML并不是專(zhuān)為SSO設(shè)計(jì),,但它卻為SSO的標(biāo)準(zhǔn)化提供了可行的框架。 |
|
來(lái)自: skyphd > 《網(wǎng)上資料》