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