摘 要:本文從醫(yī)院信息化建設的現(xiàn)狀出發(fā),提出了一個基于LADP應用的統(tǒng)一身份認證管理的單點登錄解決方案。著重對SSO的認證流程以及該方案的技術實現(xiàn)細節(jié)作了比較深入地探討和分析。
關鍵詞:統(tǒng)一用戶;單點登錄;LADP
中圖分類號:TP393.08
隨著醫(yī)院網(wǎng)絡信息化建設的不斷深入,使得網(wǎng)絡管理特別是用戶管理變得越來越復雜[1]。目前大部分應用系統(tǒng)都各自擁有獨立的身份認證機制對用戶進行授權,用戶在進入不同系統(tǒng)時,需要輸入對應系統(tǒng)的用戶名和口令方能通過系統(tǒng)的認證。這不僅使得系統(tǒng)的日常運行和維護十分不便,也造成了一定的資源的浪費和安全隱患。為此,我們采用統(tǒng)一的用戶管理的身份認證(UAMS,Unified-Authentication-Management-System),實現(xiàn)用戶單點登錄(Single Sign-On,SSO),用戶只需輸入一次口令,就可以在其權限范圍內(nèi)到達各個業(yè)務系統(tǒng)。
1 LDAP目錄服務
LDAP是輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol)是目錄訪問協(xié)議的一種,它是對X.500的目錄訪問協(xié)議的移植,但是簡化了實現(xiàn)方法[2]。同時它是一種標準、開放、可擴展的目錄訪問協(xié)議。它主要有以下特點和優(yōu)勢:
特點:
(1)標準的訪問協(xié)議;
(2)讀多于寫;
(3)一般不支持事物處理;
(4)目錄查詢速度快,索引功能強大;
(5)一種可選擇性協(xié)商的面向連接的安全協(xié)議;
(6)方便的備份和恢復功能。
目錄服務將分布式系統(tǒng)中的用戶、資源和組成分布式系統(tǒng)的組織起來,提供一個單一的邏輯視圖,允許用戶和應用透明地訪問網(wǎng)絡上的資源。
優(yōu)勢:
(1)網(wǎng)絡的集中管理點,網(wǎng)絡管理工作大大減輕,包括管理網(wǎng)絡上的各個應用;
(2)存儲在其它條件下很難處理的管理信息;
(3)數(shù)據(jù)安全可靠,訪問控制粒度細膩;
(4)系統(tǒng)資源信息的利用率高、管理的可擴展性好;
(5)LDAP協(xié)議是跨平臺的和標準的協(xié)議;
(6)數(shù)據(jù)分布廣,規(guī)模可靈活擴充。
LDAP服務器可以是任何一個開放源代碼或商用的LDAP目錄服務器,可以用同樣的協(xié)議\客戶端連接軟件包和查詢命令與LDAP服務器進行交互。
LDAP元數(shù)據(jù)模型定義目錄存儲的對象類、屬性類、屬性語法等類型,通過定義存儲在不同條目下對象類型之間的關系,構成完整目錄元數(shù)據(jù)模型也被稱為Schema。
1.1 LADP目錄結構
2 統(tǒng)一用戶系統(tǒng)技術方案
2.1 系統(tǒng)概述
該系統(tǒng)主要包括統(tǒng)一用戶和部門管理、統(tǒng)一認證和授權兩個部分。統(tǒng)一用戶和部門管理提供了用戶和部門之間的從屬關系,支持部門之間的各種關系。統(tǒng)一認證和授權提供了對用戶的認證、授權、加密等管理。
系統(tǒng)利用LDAP目錄服務中提供的分布式服務,將用戶基本信息、用戶管理信息、網(wǎng)絡應用資源信息以及用戶對網(wǎng)絡應用資源的訪問權限等以目錄樹的形式加以組織存儲,并在此基礎上提出一套統(tǒng)一的用戶身份認證及網(wǎng)絡應用資源管理模式,從而實現(xiàn)對用戶的統(tǒng)一身份認證、單點登錄、集中鑒權以及對網(wǎng)絡應用資源的統(tǒng)一管理[4]。系統(tǒng)結構圖如圖3:
2.2 統(tǒng)一用戶管理
用戶信息統(tǒng)一管理為信息系統(tǒng)建立一個統(tǒng)一、標準的員工信息體系應用[5]。對員工信息進行統(tǒng)一管理,能使員工在不同系統(tǒng)之間的信息保持一致。同時,用戶帳戶信息的統(tǒng)一,為實現(xiàn)不同系統(tǒng)之間的統(tǒng)一登錄提供良好的信息基礎,為新的系統(tǒng)建設提供訪問控制的帳戶資源與標準
此子系統(tǒng)包括組織結構管理、用戶管理、業(yè)務系統(tǒng)(資源)管理、業(yè)務系統(tǒng)內(nèi)部角色管理、統(tǒng)一用戶系統(tǒng)角色管理。用戶管理系統(tǒng)結構圖如下:
2.3 基于分級角色的權限管理
系統(tǒng)中用戶權限由兩部分組成。一部分為統(tǒng)一用戶系統(tǒng)的角色,另一部分為業(yè)務系統(tǒng)自身的角色權限。統(tǒng)一用戶系統(tǒng)的角色權限控制登錄用戶對各子業(yè)務系統(tǒng)的使用和登錄,業(yè)務系統(tǒng)的子角色則控制用戶在各自業(yè)務系統(tǒng)內(nèi)部功能的授權。其結構圖如圖5。
在實際應用系統(tǒng)中,系統(tǒng)權限管理,系統(tǒng)權限管理是對應用系統(tǒng)提供的業(yè)務功能與操作用戶之間的業(yè)務功能權限、數(shù)據(jù)權限的管理,即實現(xiàn)不同的操作用戶擁有不同的業(yè)務功能權限和業(yè)務數(shù)據(jù)權限。它是應用系統(tǒng)的基礎。構建一套以“角色+崗位”為基礎的業(yè)務權限管理模型,并將它做為業(yè)務權限管理的理論依據(jù),其中角色屬于技術范疇,崗位屬于業(yè)務范疇,這樣能更好的結合技術實現(xiàn)業(yè)務要求。
基本概念:
組織機構:醫(yī)院管理中分層的基本單元,在本系統(tǒng)中組織機構只支持單樹模型,即一個政府機構/企業(yè)只有一個根機構,除根機構外其他組織機構只有一個父機構,可以有0個或多個子機構,一個機構可以有0個或多個崗位;
崗位:某個部門的職位(相當于在部門下有相同職能的用戶的集合),它隸屬于某個具體的部門,一個崗位只屬于一個部門,并且可以有0個或多個用戶在崗位上任職;一個崗位可以有0個或多個角色;
用戶:能夠使用應用系統(tǒng)的身份唯一的人,一個用戶可以隸屬多個崗位;一個用戶只屬于一個部門;
用戶組:具有某個共同目標的用戶集合,一個用戶組可以有0個或多個角色;
角色:訪問應用系統(tǒng)各種權限(包括菜單、功能和數(shù)據(jù)權限)的集合,一個用戶可以有0或多個角色;
菜單:在B/S應用中,可以進行點擊操作的入口,菜單分為葉子菜單和非葉子菜單,一個非葉子菜單可以有多個葉子菜單和非葉子菜單。
2.4 同步方式
統(tǒng)一用戶管理系統(tǒng)采用的是基本標準的webservice方式進行同步,采用推送的方式將所有的變更信息按照規(guī)定的接口推送到對應的應用系統(tǒng)。同時各應用系統(tǒng)修改組織結構、用戶信息、角色權限等信息時也通過調(diào)用webservice的方式推送到統(tǒng)一用戶管理系統(tǒng)以及其他對應的業(yè)務應用系統(tǒng)。流程圖如圖7:
(1)需要同步數(shù)據(jù)的應用系統(tǒng)根據(jù)規(guī)范約定的接口提供服務實現(xiàn)。
(2)統(tǒng)一用戶管理系統(tǒng)在進行數(shù)據(jù)變更的同時將數(shù)據(jù)變化通過客戶端調(diào)用推送給相應的應用。
(3)應用根據(jù)接口要求返回成功或失敗。
(4)用戶管理系統(tǒng)根據(jù)返回提示。
3 統(tǒng)一認證接口子系統(tǒng)
3.1 SSO解決方案
SSO全稱Single Sign On,是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。它包括可以將這次主要的登錄映射到其他應用中用于同一個用戶的登錄的機制。它是目前比較流行的企業(yè)業(yè)務整合的解決方案之一。單點登錄系統(tǒng)結構圖如圖8。
單點登陸解決方案有兩種:
(1)模擬登陸方式。此模式根據(jù)用戶預留下來的用戶名,密碼,把此值代入預先寫的一個form表單中,然后進行自動提交登錄驗證。
優(yōu)點:對需要登錄的系統(tǒng)做簡單修改,甚至不需做修改就可以進行登錄
缺點:因為需要表單重新提交,所以訪問速度略慢一些,而且如果您想查看子系統(tǒng)內(nèi)容時,無法直接訪問您需要訪問的內(nèi)容頁面,需進入子系統(tǒng)后才可訪問。
(2)通過信任第三方的方式。
所謂第三方驗證,也就是所有系統(tǒng)共同信任的第三方系統(tǒng)進行用戶的驗證,用戶在訪問所有的系統(tǒng)時都會把用戶登錄信息保存在第三方系統(tǒng)中,如果此用戶訪問其他系統(tǒng)時,不需要重新登陸,只需在第三方系統(tǒng)中驗證通過后,其他系統(tǒng)就默認其用戶身證屬于正確的,可以進行操作。
在第三方系統(tǒng)驗證中有以下幾種模式:
口令牌認證方式:在用戶進行登錄時,系統(tǒng)在認證中心獲取一復雜字符串(即口令牌),當用戶訪問其他系統(tǒng)的某一條信息時需把此口令牌和需要訪問的地址一并發(fā)送到認證中心,在認證中心進行此口令牌驗證是否正確,如果無誤,轉向需要訪問的地址。
優(yōu)點:在做身份驗證各方法中,屬于最簡單和最容易理解的方式
缺點:存在一定安全隱患,并且訪問一個網(wǎng)頁時,網(wǎng)頁地址不能寫成靜態(tài)網(wǎng)址,因為為了安全考慮,每登陸一次系統(tǒng)時,口令牌都是隨機生成,所以無法寫成固定模式。
第三方域名認證方式:用戶在登錄系統(tǒng)時,驗證通過后系統(tǒng)轉向訪問認證中心,并把用戶信息和要訪問的頁面?zhèn)鲄⒔o認證中心,認證中心以自己的域名把用戶信息用cookie或session方式存儲起來,這樣用戶再訪問其他系統(tǒng)時,都會先訪問認證中心,認證中心根據(jù)存儲的信息進行驗證。
優(yōu)點:安全性高,并且跟據(jù)需要可以長時間保存用戶信息,訪問方便
缺點:需要一獨立域名,用戶訪問時系統(tǒng)必須訪問認證中心,認證中心出現(xiàn)問題時,各子系統(tǒng)都將無法正常訪問
其他身份驗證方式:用戶登陸時留下訪問認證中心,認證中心保存用戶一些特殊的信息,以便以后訪問時進行的身份驗證,如:用戶的機器號,用戶路由號,IP地址,瀏覽器ID等。
優(yōu)點:在一些特殊用處時,安全級別高
缺點:無法進行很大范圍應用,否則安全級別會隨之降低
3.2 UAMS實現(xiàn)
用戶統(tǒng)一身份認證的設計思想是建立一個統(tǒng)一的身份認證平臺,利用目錄服務集中存儲用戶的信息和各個應用系統(tǒng)的信息,應用Web Services技術將系統(tǒng)的統(tǒng)一認證封裝為Web服務,便于應用系統(tǒng)的調(diào)用,從而實現(xiàn)統(tǒng)一認證、統(tǒng)一管理和統(tǒng)一授權。
統(tǒng)一認證子系統(tǒng)是位于多個應用系統(tǒng)和統(tǒng)一身份認證中心之間,該系統(tǒng)接受用戶認證請求,由認證中心進行認證并將認證結果返回給應用系統(tǒng)。認證流程圖如圖9:
(1)產(chǎn)品系統(tǒng)登陸時需向認證中心索取得到TOKEN(口令碼),方式為Webservice,得到值為String型。
(2)登陸驗證成功轉向頁面為認證中心指定網(wǎng)址,參數(shù)有三個:①token:得到的口令碼。②url:需要轉向的登陸后頁面。③errorUrl:錯誤轉向頁面。
4 結論
本文闡述了實現(xiàn)統(tǒng)一用戶管理系統(tǒng)的技術方案,介紹了統(tǒng)一身份認證的實現(xiàn)技術。隨著單點登錄在醫(yī)院信息化進程中的實現(xiàn),正在從一個域向多個域的單點登錄推進,逐步實現(xiàn)不同域(即不同單位)間的聯(lián)盟認證,從而實現(xiàn)原本一個單位內(nèi)部的信息共享到不同單位間的信息共享。統(tǒng)一身份認證和單點登錄在目前信息化進程中,為網(wǎng)絡資源的共享提供了一個有效的、安全的解決方案。
參考文獻:
[1]焦靜,李勇.基于LDAP的統(tǒng)一身份認證的設計與實現(xiàn)[J].科學技術與工程,2007,7(4):646-649.
[2]南相浩,白鵬,徐志大.目錄服務協(xié)議分析、比較與實現(xiàn)[J].計算機工程與應用,2001,37(3):51-53.
[3]M wahl,T Howes S Kille.Lightweight Directory Access Protocol Version 3[R],RFC2251,1997.
[4]王春耕,朱建濤.大規(guī)模機群系統(tǒng)中基于LDAP的用戶管理[J].計算機工程與應用,2004,40(18):47-49.
[5]Gerald Carter.LDAP system administrator[M].Sebastopol:O'Reillyan dAssociatesInc,2003.