登入代理

基於Web Services的登錄代理服務方案,在不改變原有的Web套用架構的基礎上,通過構建一個標準的XML Web服務,實現了異構Web套用系統之間用戶身份信息的共享。該代理服務不但能夠消除用戶信息管理中存在的“各行其是”現象,而且也極大地方便了用戶的操作。

簡介

定義

基於Web Services的登錄代理服務方案,在不改變原有的Web套用架構的基礎上,通過構建一個標準的XML Web服務,實現了異構Web套用系統之間用戶身份信息的共享。該代理服務不但能夠消除用戶信息管理中存在的“各行其是”現象,而且也極大地方便了用戶的操作。

該方案還可以根據具體的項目需要進行適當的擴充。例如,可以為系統管理員開發一個綜合管理界面,用於維護用戶資料、控制用戶訪問許可權、監視代理服務的使用情況,等等。或者,可以增強登錄助手外掛程式的功能,使之不僅能夠偵聽瀏覽器視窗的導航動作,還可以讓用戶對瀏覽器加鎖,以保證只有在登錄狀態下才能訪問某些站點。

研究背景

隨著基於Web的信息系統日益廣泛的套用,許多企業、機關和教學科研單位都陸續開發或使用了針對不同部門、不同用途的Web信息管理系統和信息發布系統。

在提高工作效率的同時,多個系統各自為政也帶來了一系列的麻煩,其中之一就是每個系統都有自己的用戶身份數據存儲方式和登錄信息驗證過程。如果一個用戶要訪問不同的系統,則必須分別在每個系統中註冊自己的登錄信息。這使得用戶常常為記住一連串的帳戶名和口令而感到頭疼。

事實上,產生這種現象的根源在於:每一個套用系統的決策者和設計者,在規劃、設計、開發和部署該套用系統的時候,都只是將某一局部的信息資源加以歸納整理,卻沒有從全局的高度來考慮系統的設計和實現,當然也就不可能真正實現信息的共享和系統的互通。於是就造成了眾多的信息孤島,信息需要重複多次的輸入,數據冗餘嚴重,數據一致性得不到保證,部門之間無法共享信息,管理者也難以統籌全局。

顯然,為了擺脫這種困境,一個簡單的方案就是連線企業內部異構的信息系統,使彼此之間可以互相通信。這也就是我們通常所說的企業套用整合(Enterprise Application Integration,簡稱EAI)。然而,傳統的EAI方案很難從根本上解決我們當前面臨的問題。例如:使用流行的分散式技術CORBA、DCOM等,雖然可以實現較為複雜的系統整合,但是這些技術都是基於各自定義的標準,它們在傳輸機制、數據定義以及訪問模型上都大相逕庭,相互之間難以溝通。另外,傳統EAI技術在簡單性、靈活性、可擴展性、適用範圍以及整合效率等許多方面大都差強人意,高昂的工程成本更是讓許多中小型企業望而卻步。

Web Services(即Web服務)體系結構的出現,為解決上述矛盾開闢了道路。Web服務建立在對開放標準XML廣泛接受的基礎上,最重要的優點之一就是允許在不同平台上使用不同程式語言以一種標準的技術開發程式,來與其它應用程式通訊。Web服務使用XML序列化其客戶端收發的數據,即使客戶端和Web服務主機使用不同的作業系統,或者應用程式使用不同的程式語言開發,只要客戶端程式可以解析XML,那么它就可以使用Web服務返回的數據。依靠Web服務,通過鬆散的套用整合,用戶能夠實時地訪問不同部門、不同套用、不同平台和不同系統的信息。

研究意義

基於Web Services的登錄代理服務,其首要設計目標可以概括為:“一次登錄,到處通行”。所謂“一次登錄,到處通行”,是指基於Web Services的登錄代理服務的設計與實現用戶只需要經過一次統一身份認證,就可以訪問各個系統;也就是說,用戶只要持有一份註冊信息,就可以在各個Web套用之間通行。

構建這樣一個登錄代理服務的意義在於:一方面,對於用戶信息的管理,既是大多數Web套用共有的關鍵環節,往往又是最容易產生數據冗餘和數據不一致等現象的環節;另一方面,Web套用的服務對象是用戶,用戶本人的身份信息是其數據訪問的基礎,決定了用戶會從Web套用中獲得何種服務。

目標

根據套用背景的要求,基於WebServices的登錄代理服務需要達到以下目標:

方便使用

能夠儘可能地利用現有系統的身份認證模組以及現有的用戶設定和許可權設定,儘量保護現有的投資,減少重新進行用戶設定和許可權設定的費用,同時避免對現有系統進行大規模的修改。

擴展性和可集成性

不僅能夠支持現有的Web套用系統及其現有的用戶管理系統,而且當有新的Web套用被部署或開發的時候,這個登錄代理服務可以作為它的身份認證模組的形式工作。也就是說,新的Web套用不必建立自己的用戶系統,可以通過利用該服務作為身份認證模組的形式來實現等價的功能。

功能及過程描述

服務用例圖 服務用例圖

登錄代理服務需具備四項主要功能,如圖所示。

下面分別描述一下用戶註冊、帳戶關聯、登錄代理和認證組件的大致流程。

用戶註冊

用戶在登錄代理服務中註冊一個帳戶,以後這個帳戶可以在所有使用登錄代理服務的套用系統中使用,它作為用戶的唯一身份標誌,可以關聯到多個遠程Web套用的帳戶記錄。

用戶註冊主要由兩個過程組成:新用戶註冊和更新用戶註冊信息。新用戶註冊包括以下三個步驟:

1、用戶向登錄代理服務發出新用戶註冊請求。

2、服務查詢用戶信息資料庫,如果該用戶可以註冊(沒有同名ID等違背約束條件的情況發生),那么將該用戶的信息保存到用戶信息資料庫中。

3、當保存完畢後,登錄代理服務回響用戶,註冊完成。更新用戶註冊信息的過程與之類似。

帳戶關聯

如果用戶之前已經在相關的套用系統中擁有帳戶,而且也已經設定了相應的許可權,那么用戶能夠將這些套用系統的帳戶與登錄代理服務的帳戶進行關聯,以便用戶在登錄到代理服務之後,就能夠自動使用相關的帳戶名/口令信息來訪問遠程Web套用系統。

帳戶關聯操作比較複雜。這是因為,不同的Web套用,其身份認證方式也不盡相同。比如,最常見的是採用HTTP POST方式,即利用HTML頁面上的Form對象,將用戶輸入的一組帳戶名/口令信息提交到由Form的ACTION屬性指定的處理頁面。這也是最簡單的登錄方式。許多Web套用系統的登錄模組需要用戶輸入更多的信息,如選擇登錄角色、個人喜好設定,等等。然而,不論登錄頁面要求用戶輸入多少信息,後端Web伺服器接收到的都是一系列的名/值對。伺服器再將這些名/值對進行處理,據此驗證用戶的身份。

登錄代理

用戶首先登錄到代理服務,並獲取許可權令牌,以後可以使用這個許可權令牌訪問其他的Web套用系統。

一次登錄代理流程 一次登錄代理流程

如果用戶已經註冊,並且有帳戶關聯記錄,那么就可以通過登錄代理服務訪問遠程Web服務,主要流程如圖所示:

1.用戶登錄到登錄代理服務。‘

2.用戶發出請求,訪問某個遠程Web套用系統,如RmWebAppi。

3.服務在資料庫中查找此用戶的帳戶關聯記錄;如找到,則生成一個“偽”登錄頁面,並且填寫登錄數據,回饋給用戶。

4.使用“偽”登錄頁面上的腳本,將用戶登錄數據提交到RmWebAppl。

5.如果登錄成功,用戶即可訪問RmWebAppI。

認證組件

某些Web套用自身沒有用戶系統,但是可以將登錄代理服務作為自己的身份認證組件。也就是說,用戶可以把登錄代理服務中的帳戶名/口令,作為在這些Web套用中的帳戶名/口令。

代理服務向其它Web套用提供身份認證接口,允許這些Web套用使用代理服務作為它們的身份認證組件。

1.用戶使用在登錄代理服務上註冊的帳戶名/口令,登錄到某個Web套用系統,例如RmWebhppl。

2.PanWebAppl將用戶輸入的登錄數據,以及自己在登錄代理服務中註冊的標識令牌(Token_Appi)轉發給登錄代理服務,請求登錄代理服務完成身份認證。

3.登錄代理服務根據令牌Token_Appl,判定RmWebAppl是否已經在登錄代理服務中註冊。若是,則核對RmWebAppl轉發過來的用戶名和密碼。

4.登錄代理服務將驗證結果返回給RmWebAppl,這樣就完成了一次身份認證。

基於登錄代理的統一身份認證服務平台

定義及研究背景

隨著信息化程度的提高, 企業內部的各種套用也隨之增加。傳統上這些套用系統各自擁有一套獨立的用戶系統, 使用獨立的認證機制。結果造成用戶信息、資源冗餘, 用戶身份組織零亂, 管理複雜, 用戶多密碼記憶及多點登錄。這不但影響了用戶的使用效率, 而且信息、資源的分散存儲和管理,給企業內部的網路管理帶來困難, 使整個網路系統存在安全隱患, 受到非法截獲和破壞的可能性增大, 從而在一定程度上制約網路的發展。所以, 構建一個統一身份認證服務平台是解決企業內部套用系統集成的有效途徑。

統一身份認證服務的中心思想就是為企業內部的網路套用建立唯一的認證服務平台, 用戶的信息資源被統一存儲在中央用戶資料資料庫中, 為企業內部的所有套用共享。對用戶而言, 只需一次身份認證, 就可以對所有被授權的套用系統或資源進行無縫的訪問, 對網路管理員而言, 可以在可視化圖形界面下, 便捷地實現對各套用系統的用戶集中管理和統一身份認證, 並進行系統級的授權。從而改變了傳統分散的用戶管理和認證模式, 大大地提高了認證的可信度和可靠性。在規範用戶操作行為, 提高工作效率,降低操作成本, 提高系統的整體安全性方面得到很大的改善。集中式的認證平台, 可以提供功能更強的認證手段和效率更高的認證方法。

工作流程

登錄代理服務模式的工作流程 登錄代理服務模式的工作流程

在基於登錄代理的統一身份認證服務模式下,用戶對支持統一身份認證服務平台的套用系統的訪問請求由登錄代理攔截並根據該平台中的認證機制和策略決定該請求是否能滿足或拒絕。基於登錄代理服務模式的工作流程如圖所示。工作流程如下:

1)用戶通過瀏覽器發出套用系統資源訪問請求, 在套用伺服器端的登錄代理負責攔截用戶對套用系統資源的請求;

2)登錄代理檢查訪問請求中是否包含訪問認證令牌, 如果包含訪問認證令牌, 則進行步驟7),如無訪問認證令牌(對於第一次登錄統一身份認證服務平台或逾時退出系統後的情況), 則登錄代理向身份認證伺服器發出用戶認證申請;

3)身份認證伺服器的認證模組將根據用戶提供的個人身份信息和中央用戶資料庫中的相關用戶信息進行匹配, 如果匹配成功, 則通過認證, 該用戶創建一個全局會話, 並產生一個與該會話關聯的全局訪問認證令牌(cookie , 包含該用戶的帳號、密碼等信息), 同時授權模組將根據中央用戶資料資料庫的策略, 查詢該用戶在統一身份認證服務平台中被授權的全部套用系統的資源(URL)列表;

4)身份認證伺服器將該用戶的全局訪問認證令牌和全部授權資源列表返回登錄代理, 登錄代理返回該全局訪問認證令牌及用戶全部授權資源列表的WEB 頁面到客戶端;

5)客戶端的瀏覽器收到後將其存入本地快取, 在以後該用戶訪問其他支持統一身份認證服務的套用系統時, 只需單擊相應的套用系統列表, 該用戶的全局訪問認證令牌的訊息將自動在請求中傳遞;

6)如果無法通過認證, 則登錄代理將拒絕用戶的訪問請求, 並返回一個無權訪問的WEB 頁面;

7)登錄代理在用戶訪問請求訊息中識別出全局訪問認證令牌後, 向身份認證伺服器發出識別全局訪問認證令牌有效性的請求;

8)身份認證伺服器確認令牌的有效性, 如果全局訪問令牌無效, 登錄代理向用戶傳送一個含有出錯信息的WEB 回響;

9)如果全局訪問令牌有效, 則身份認證伺服器的認證模組將查詢中央用戶資料資料庫中的帳號關聯信息, 以確認該用戶與所申請訪問的套用系統之間是否存在帳號關聯;

10)如果存在帳號關聯信息, 登錄代理將包含關聯信息(套用系統中的用戶名、密碼等)的訪問請求定向到相應的套用系統, 套用系統自動根據關聯信息中套用系統內部的用戶賬戶回響用戶請求;

11)如果不存在帳號關聯信息(對於新部署的套用系統), 登錄代理直接將訪問請求定向到相應的套用系統;

12)套用系統將回響結果返回登錄代理, 最後登錄代理將回響結果返回給用戶, 完成調用。

相關詞條

熱門詞條

聯絡我們