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