本文以某新聞單位多媒體數據庫系統爲例,提出創建企業用戶認證中心,實現基於安全策略的統一用戶管理、認證和單點登陸,解決用戶在同時使用多個應用系統時所遇到的重複登陸問題。數據庫
隨着信息技術和網絡技術的迅猛發展,企業內部的應用系統愈來愈多。好比在媒體行業,常見的應用系統就有采編系統、排版系統、印刷系統、廣告管理系統、財務系統、辦公自動化系統、決策支持系統、客戶關係管理系統和網站發佈系統等。因爲這些系統互相獨立,用戶在使用每一個應用系統以前都必須按照相應的系統身份進行登陸,爲此用戶必須記住每個系統的用戶名和密碼,這給用戶帶來了很多麻煩。特別是隨着系統的增多,出錯的可能性就會增長,受到非法截獲和破壞的可能性也會增大,安全性就會相應下降。針對於這種狀況,統一用戶認證、單點登陸等概念應運而生,同時不斷地被應用到企業應用系統中。跨域
統一用戶管理的基本原理瀏覽器
通常來講,每一個應用系統都擁有獨立的用戶信息管理功能,用戶信息的格式、命名與存儲方式也多種多樣。當用戶須要使用多個應用系統時就會帶來用戶信息同步問題。用戶信息同步會增長系統的複雜性,增長管理的成本。安全
例如,用戶X須要同時使用A系統與B系統,就必須在A系統與B系統中都建立用戶X,這樣在A、B任一系統中用戶X的信息更改後就必須同步至另外一系統。若是用戶X須要同時使用10個應用系統,用戶信息在任何一個系統中作出更改後就必須同步至其餘9個系統。用戶同步時若是系統出現意外,還要保證數據的完整性,於是同步用戶的程序可能會很是複雜。服務器
解決用戶同步問題的根本辦法是創建統一用戶管理系統(UUMS)。UUMS統一存儲全部應用系統的用戶信息,應用系統對用戶的相關操做所有經過UUMS完成,而受權等操做則由各應用系統完成,即統一存儲、分佈受權。UUMS應具有如下基本功能:網絡
1.用戶信息規範命名、統一存儲,用戶ID全局唯一。用戶ID猶如身份證,區分和標識了不一樣的個體。框架
2.UUMS向各應用系統提供用戶屬性列表,如姓名、電話、地址、郵件等屬性,各應用系統能夠選擇本系統所須要的部分或所有屬性。分佈式
3.應用系統對用戶基本信息的增長、修改、刪除和查詢等請求由UUMS處理。模塊化
4.應用系統保留用戶管理功能,如用戶分組、用戶受權等功能。網站
5.UUMS應具備完善的日誌功能,詳細記錄各應用系統對UUMS的操做。
統一用戶認證是以UUMS爲基礎,對全部應用系統提供統一的認證方式和認證策略,以識別用戶身份的合法性。統一用戶認證應支持如下幾種認證方式:
1. 匿名認證方式: 用戶不須要任何認證,能夠匿名的方式登陸系統。
2. 用戶名/密碼認證: 這是最基本的認證方式。
3. PKI/CA數字證書認證: 經過數字證書的方式認證用戶的身份。
4. IP地址認證: 用戶只能從指定的IP地址或者IP地址段訪問系統。
5. 時間段認證: 用戶只能在某個指定的時間段訪問系統。
6. 訪問次數認證: 累計用戶的訪問次數,使用戶的訪問次數在必定的數值範圍以內。
以上認證方式應採用模塊化設計,管理員可靈活地進行裝載和卸載,同時還可按照用戶的要求方便地擴展新的認證模塊。
認證策略是指認證方式經過與、或、非等邏輯關係組合後的認證方式。管理員能夠根據認證策略對認證方式進行增、刪或組合,以知足各類認證的要求。好比,某集團用戶多人共用一個帳戶,用戶經過用戶名密碼訪問系統,訪問必須限制在某個IP地址段上。該認證策略可表示爲: 用戶名/密碼「與」IP地址認證。
PKI/CA數字證書認證雖不經常使用,但卻頗有用,一般應用在安全級別要求較高的環境中。PKI(Public Key Infrastructure)即公鑰基礎設施是利用公鑰理論和數字證書來確保系統信息安全的一種體系。
在公鑰體制中,密鑰成對生成,每對密鑰由一個公鑰和一個私鑰組成,公鑰公佈於衆,私鑰爲所用者私有。發送者利用接收者的公鑰發送信息,稱爲數字加密,接收者利用本身的私鑰解密; 發送者利用本身的私鑰發送信息,稱爲數字簽名,接收者利用發送者的公鑰解密。PKI經過使用數字加密和數字簽名技術,保證了數據在傳輸過程當中的機密性(不被非法受權者偷看)、完整性(不能被非法篡改)和有效性(數據不能被簽發者否定)。
數字證書有時被稱爲數字身份證,數字證書是一段包含用戶身份信息、用戶公鑰信息以及身份驗證機構數字簽名的數據。身份驗證機構的數字簽名能夠確保證書信息的真實性。
完整的PKI系統應具備權威認證機構CA(Certificate Authority)、證書註冊系統RA(Registration Authority)、密鑰管理中心KMC(Key Manage Center)、證書發佈查詢系統和備份恢復系統。CA是PKI的核心,負責全部數字證書的簽發和註銷; RA接受用戶的證書申請或證書註銷、恢復等申請,並對其進行審覈; KMC負責加密密鑰的產生、存貯、管理、備份以及恢復; 證書發佈查詢系統一般採用OCSP(Online Certificate Status Protocol,在線證書狀態協議)協議提供查詢用戶證書的服務,用來驗證用戶簽名的合法性; 備份恢復系統負責數字證書、密鑰和系統數據的備份與恢復。
單點登陸
單點登陸(SSO,Single Sign-on)是一種方便用戶訪問多個系統的技術,用戶只需在登陸時進行一次註冊,就能夠在多個系統間自由穿梭,沒必要重複輸入用戶名和密碼來肯定身份。單點登陸的實質就是安全上下文(Security Context)或憑證(Credential)在多個應用系統之間的傳遞或共享。當用戶登陸系統時,客戶端軟件根據用戶的憑證(例如用戶名和密碼)爲用戶創建一個安全上下文,安全上下文包含用於驗證用戶的安全信息,系統用這個安全上下文和安全策略來判斷用戶是否具備訪問系統資源的權限。遺憾的是J2EE規範並無規定安全上下文的格式,所以不能在不一樣廠商的J2EE產品之間傳遞安全上下文。
目前業界已有不少產品支持SSO,如IBM的WebSphere和BEA的WebLogic,但各家SSO產品的實現方式也不盡相同。WebSphere經過Cookie記錄認證信息,WebLogic則是經過Session共享認證信息。Cookie是一種客戶端機制,它存儲的內容主要包括: 名字、值、過時時間、路徑和域,路徑與域合在一塊兒就構成了Cookie的做用範圍,所以用Cookie方式可實現SSO,但域名必須相同; Session是一種服務器端機制,當客戶端訪問服務器時,服務器爲客戶端建立一個唯一的SessionID,以使在整個交互過程當中始終保持狀態,而交互的信息則可由應用自行指定,所以用Session方式實現SSO,不能在多個瀏覽器之間實現單點登陸,但卻能夠跨域。
實現SSO有無標準可尋?如何使業界產品之間、產品內部之間信息交互更標準、更安全呢?基於此目的,OASIS(結構化信息標準促進組織)提出了SAML解決方案(有關SAML的知識參看連接)。
用戶認證中心實際上就是將以上全部功能、全部概念造成一個總體,爲企業提供一套完整的用戶認證和單點登陸解決方案。一個完整的用戶認證中心應具有如下功能:
1. 統一用戶管理。實現用戶信息的集中管理,並提供標準接口。
2. 統一認證。用戶認證是集中統一的,支持PKI、用戶名/密碼、B/S和C/S等多種身份認證方式
3. 單點登陸。支持不一樣域內多個應用系統間的單點登陸。
用戶認證中心提供了統一認證的功能,那麼用戶認證中心如何提供統一受權的功能呢?這就是受權管理中,其中應用最多的就是PMI。
PMI(Privilege Management Infrastructure,受權管理基礎設施)的目標是向用戶和應用程序提供受權管理服務,提供用戶身份到應用受權的映射功能,提供與實際應用處理模式相對應的、與具體應用系統開發和管理無關的受權和訪問控制機制,簡化具體應用系統的開發與維護。PMI是屬性證書(Attribute Certificate)、屬性權威(Attribute Authority)、屬性證書庫等部件的集合體,用來實現權限和證書的產生、管理、存儲、分發和撤銷等功能。
PMI以資源管理爲核心,對資源的訪問控制權統一交由受權機構統一處理,即由資源的全部者來進行訪問控制。同公鑰基礎設施PKI相比,二者主要區別在於: PKI證實用戶是誰,而PMI證實這個用戶有什麼權限,能幹什麼,並且PMI能夠利用PKI爲其提供身份認證。
單點登陸通用設計模型
圖2是統一用戶認證和單點登陸通用設計模型,它由如下產品組成:
1. PKI體系: 包括CA服務器、RA服務器、KMC和OCSP服務器。
2. AA管理服務器: 即認證(Authentication)和受權(Authorization)服務器,它爲系統管理員提供用戶信息、認證和受權的管理。
3. UUMS模塊: 爲各應用系統提供UUMS接口。
4. SSO: 包括SSO代理和SSO服務器。SSO代理部署在各應用系統的服務器端,負責截獲客戶端的SSO請求,並轉發給SSO服務器,若是轉發的是OCSP請求,則SSO服務器將其轉發給OCSP服務器。在C/S方式中,SSO代理一般部署在客戶端。
5. PMI: 包括PMI代理和PMI服務器。PMI代理部署在各應用系統的服務器端,負責截獲客戶端的PMI請求,並轉發給PMI服務器。
6. LDAP服務器: 統一存儲用戶信息、證書和受權信息。
爲判斷用戶是否已經登陸系統,SSO服務器須要存儲一張用戶會話(Session)表,以記錄用戶登陸和登出的時間,SSO服務器經過檢索會話表就可以知道用戶的登陸狀況,該表一般存儲在數據庫中。AA系統提供了對會話的記錄、監控和撤消等管理功能。爲保證穩定與高效,SSO、PMI和OCSP可部署兩套或多套應用,同時提供服務。
連接
SAML
SAML(Security Assertion Markup Language,安全性斷言標記語言)是一種基於XML的框架,主要用於在各安全系統之間交換認證、受權和屬性信息,它的主要目標之一就是SSO。在SAML框架下,不管用戶使用哪一種信任機制,只要知足SAML的接口、信息交互定義和流程規範,相互之間均可以無縫集成。SAML規範的完整框架及有關信息交互格式與協議使得現有的各類身份鑑別機制(PKI、Kerberos和口令)、各類受權機制(基於屬性證書的PMI、ACL、Kerberos的訪問控制)經過使用統一接口實現跨信任域的互操做,便於分佈式應用系統的信任和受權的統一管理。
SAML並非一項新技術。確切地說,它是一種語言,是一種XML描述,目的是容許不一樣安全系統產生的信息進行交換。SAML規範由如下部分組成:
1. 斷言與協議: 定義XML格式的斷言的語法語義以及請求和響應協議。SMAL主要有三種斷言: 身份認證斷言、屬性斷言和訪問受權斷言。
2. 綁定與配置文件: 從SAML請求和響應消息到底層通訊協議如SOAP或SMTP的映射。
3. 一致性規範: 一致性規範設置了一種基本標準,必須知足這一SAML標準的實現纔可以稱爲一致性實現。這樣有助於提升互操做性和兼容性。
4. 安全和保密的問題: SAML體系結構中的安全風險,具體而言就是SAML如何應對這些風險以及沒法解決的風險。
要注意的是,SAML並非專爲SSO設計,但它卻爲SSO的標準化提供了可行的框架。---(計算機世界報 2005年09月19日 第36期 C1四、C15)