小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

單點登錄原理

 實力決定地位 2014-03-14
采用CAS原理構(gòu)建單點登錄

企業(yè)的信息化過程是一個循序漸進(jìn)的過程,在企業(yè)各個業(yè)務(wù)網(wǎng)站逐步建設(shè)的過程中,根據(jù)各種業(yè)務(wù)信息水平的需要構(gòu)建了相應(yīng)的應(yīng)用系統(tǒng),由于這些應(yīng)用系統(tǒng)一般是在不同的時期開發(fā)完成的,各應(yīng)用系統(tǒng)由于功能側(cè)重、設(shè)計方法和開發(fā)技術(shù)都有所不同,也就形成了各自獨立的用戶庫和用戶認(rèn)證體系。隨著新的業(yè)務(wù)網(wǎng)站不斷的增加,用戶在每個應(yīng)用系統(tǒng)中都有獨立的賬號,這樣就造成在訪問不同的應(yīng)用系統(tǒng)時,需要記錄對應(yīng)的用戶名和密碼,多個用戶名密碼極易記混,如果忘記或記錯了某一個業(yè)務(wù)網(wǎng)站的用戶名或密碼就無法進(jìn)行登錄,耽誤工作,影響工作效率,隨著局內(nèi)信息化進(jìn)程的推進(jìn)還會有新的應(yīng)用系統(tǒng)產(chǎn)生,如果不引入單一用戶登錄的解決方案,全公司工作人名特別是承擔(dān)審批權(quán)限的各級領(lǐng)導(dǎo)很難記清各類應(yīng)用系統(tǒng)的用戶名和密碼,嚴(yán)重影響由信息化帶來快捷性和高效性。此外,多個應(yīng)用平臺就有多個用戶管理,這也為系統(tǒng)管理員維護(hù)人員系統(tǒng)帶來巨大的工作量,例如,一次變更10個人員,即使只有5個應(yīng)用系統(tǒng),也需要重復(fù)維護(hù)50個人員信息,而企業(yè)的每次人員調(diào)整遠(yuǎn)不至10人,這種幾何增長的維護(hù)工作量,會浪費(fèi)大量的精力和時間,減弱了信息化系統(tǒng)帶來方便快捷,為此,需建立一套統(tǒng)一的、完善的、科學(xué)的單點登錄系統(tǒng),每個用戶只需記錄一個用戶名密碼,登錄一個平臺后即可實現(xiàn)各應(yīng)用系統(tǒng)的透明跳轉(zhuǎn),而且實行統(tǒng)一的用戶信息管理系統(tǒng),系統(tǒng)管理員只需維護(hù)一套人員信息,更改信息通過平臺接口同步更新至各個應(yīng)用系統(tǒng),實現(xiàn)人員系統(tǒng)單次維護(hù)全公司同步變更,大大提高工作效率。

新的應(yīng)用系統(tǒng)在不斷開發(fā),早一天規(guī)劃設(shè)計出單點登錄的規(guī)范接口,就可以為新開發(fā)的系統(tǒng)提出的一種整合的標(biāo)準(zhǔn),在開發(fā)初期無論哪個開發(fā)商,無論采用哪種技術(shù)開發(fā),只要遵循單點登錄的規(guī)范標(biāo)準(zhǔn),新的系統(tǒng)開發(fā)完成之后即可無縫整合的到單點登錄平臺中,從而減少了系統(tǒng)開發(fā)完成后再整合到單點登錄改動而造成資源的浪費(fèi)。

從信息共享角度看現(xiàn)有的各個業(yè)務(wù)系統(tǒng)都使用各自的數(shù)據(jù)存儲方式,不經(jīng)過基礎(chǔ)的用戶名和密碼認(rèn)證后,相互之間無法傳遞有效信息。為避免信息孤島的產(chǎn)生,因此需要建立一個連接各個業(yè)務(wù)系統(tǒng)的技術(shù)架構(gòu)和標(biāo)準(zhǔn),實現(xiàn)平臺統(tǒng)一化整合;通過對業(yè)務(wù)處理和異常處理實現(xiàn)監(jiān)管透明;通過將業(yè)務(wù)流程從應(yīng)用中抽離,實現(xiàn)業(yè)務(wù)流程的靈活安排,這樣就需要一套可以整合現(xiàn)有各個業(yè)務(wù)網(wǎng)站的信息共享平臺。

單點登錄的英文名稱為Single Sign-On,簡寫為SSO,它是一個用戶認(rèn)證的過程,允許用戶一次性進(jìn)行認(rèn)證之后,就訪問系統(tǒng)中不同的應(yīng)用;而不需要訪問每個應(yīng)用時,都重新輸入密碼。IBM對SSO有一個形象的解釋“單點登錄、全網(wǎng)漫游”。

SSO將一個企業(yè)內(nèi)部所有域中的用戶登錄和用戶賬號管理集中到一起,SSO的好處顯而易見:

  • 減少用戶在不同系統(tǒng)中登錄耗費(fèi)的時間,減少用戶登錄出錯的可能性
  • 實現(xiàn)安全的同時避免了處理和保存多套系統(tǒng)用戶的認(rèn)證信息
  • 減少了系統(tǒng)管理員增加、刪除用戶和修改用戶權(quán)限的時間
  • 增加了安全性:系統(tǒng)管理員有了更好的方法管理用戶,包括可以通過直接禁止和刪除用戶來取消該用戶對所有系統(tǒng)資源的訪問權(quán)限

對于內(nèi)部有多種應(yīng)用系統(tǒng)的企業(yè)來說,單點登錄的效果是十分明顯的。很多國際上的企業(yè)已經(jīng)將單點登錄作為系統(tǒng)設(shè)計的基本功能之一。

公司第一個版本的單點登陸系統(tǒng)從2005年運(yùn)行以來,從幾十個應(yīng)用系統(tǒng)擴(kuò)展到現(xiàn)在的幾百個系統(tǒng)。在應(yīng)用的過程中沒有很好的解決跨域名的問題,單點登陸客戶端代碼使用問題,應(yīng)用系統(tǒng)的訪問規(guī)則問題等都沒有很好的解決。

SSO的實現(xiàn)機(jī)制不盡相同,大體分為Cookie機(jī)制和Session機(jī)制兩大類。

  • WebLogic通過Session共享認(rèn)證信息。Session是一種服務(wù)器端機(jī)制,當(dāng)客戶端訪問服務(wù)器時,服務(wù)器為客戶端創(chuàng)建一個惟一的SessionID,以使在整個交互過程中始終保持狀態(tài),而交互的信息則可由應(yīng)用自行指定,因此用Session方式實現(xiàn)SSO,不能在多個瀏覽器之間實現(xiàn)單點登錄,但卻可以跨域。
  • WebSphere通過Cookie記錄認(rèn)證信息。Cookie是一種客戶端機(jī)制,它存儲的內(nèi)容主要包括: 名字、值、過期時間、路徑和域,路徑與域合在一起就構(gòu)成了Cookie的作用范圍,因此用Cookie方式可實現(xiàn)SSO,但域名必須相同。

目前大部分SSO產(chǎn)品采用的是Cookie機(jī)制,公司第一個版本的單點登陸系統(tǒng)也是如此,目前能夠找到的最好的開源單點登錄產(chǎn)品CAS也是采用Cookie機(jī)制。 CAS http://www./products/cas/,CAS單點登錄系統(tǒng)最早由耶魯大學(xué)開發(fā)。2004年12月,CAS成為JA-SIG中的一個項目。JA-SIG的全稱是Java Architectures Special Interest Group,是在高校中推廣和探討基于Java的開源技術(shù)的一個組織。CAS的優(yōu)點很多,例如設(shè)計理念先進(jìn)、體系結(jié)構(gòu)合理、配置簡單、客戶端支持廣泛、技術(shù)成熟等等。這也是我們這次SSO改造的參照產(chǎn)品。

以CAS為例,使用Cookie實現(xiàn)單點登錄的原理圖如圖1所示。

  • 首先,單點登錄分為“服務(wù)端”和“客戶端”。服務(wù)端就是單點登錄服務(wù)器,而客戶端通常是“函數(shù)庫”或者“插件”。需要使用單點登錄的應(yīng)用程序,需要把客戶端插件安裝到自己的系統(tǒng)中,或者將客戶端函數(shù)庫包括在代碼中。單點登錄的客戶端通常替換了原來應(yīng)用程序的認(rèn)證部分的代碼。
  • 某個應(yīng)用程序首先要發(fā)起第1次認(rèn)證。大部分情況下,應(yīng)用程序中嵌入的客戶端會把應(yīng)用程序原來的登錄畫面屏蔽掉,而直接轉(zhuǎn)到單點登錄服務(wù)器的登錄頁面。

cas

圖 1 使用Cookie實現(xiàn)單點登錄的原理圖

  • 用戶在單點登錄服務(wù)器的登錄頁面中,輸入用戶名和密碼。
  • 然后單點登錄服務(wù)器會對用戶名和密碼進(jìn)行認(rèn)證。認(rèn)證本身并不是單點登錄服務(wù)器的功能,因此,通常會引入某種認(rèn)證機(jī)制。認(rèn)證機(jī)制可以有很多種,例如自己寫一個認(rèn)證程序,或者使用一些標(biāo)準(zhǔn)的認(rèn)證方法,例如LDAP或者數(shù)據(jù)庫等等。在大多數(shù)情況下,會使用LDAP進(jìn)行認(rèn)證。這是因為LDAP在處理用戶登錄方面,有很多獨特的優(yōu)勢,這在本文的后面還會比較詳細(xì)地進(jìn)行介紹。
  • 認(rèn)證通過之后,單點登錄服務(wù)器會和應(yīng)用程序進(jìn)行一個比較復(fù)雜的交互,這通常是某種授權(quán)機(jī)制。CAS使用的是所謂的Ticket。具體這點后面還會介紹。
  • 授權(quán)完成后,CAS把頁面重定向,回到Web應(yīng)用。Web應(yīng)用此時就完成了成功的登錄(當(dāng)然這也是單點登錄的客戶端,根據(jù)返回的Ticket信息進(jìn)行判斷成功的)。
  • 然后單點登錄服務(wù)器會在客戶端創(chuàng)建一個Cookie。注意,是在用戶的客戶端,而不是服務(wù)端創(chuàng)建一個Cookie。這個Cookie是一個加密的Cookie,其中保存了用戶登錄的信息。
  • 如果用戶此時希望進(jìn)入其他Web應(yīng)用程序,則安裝在這些應(yīng)用程序中的單點登錄客戶端,首先仍然會重定向到CAS服務(wù)器。不過此時CAS服務(wù)器不再要求用戶輸入用戶名和密碼,而是首先自動尋找Cookie,根據(jù)Cookie中保存的信息,進(jìn)行登錄。登錄之后,CAS重定向回到用戶的應(yīng)用程序。

這樣,就不再需要用戶繼續(xù)輸入用戶名和密碼,從而實現(xiàn)了單點登錄。

注意,這種單點登錄體系中,并沒有通過http進(jìn)行密碼的傳遞(但是有用戶名的傳遞),因此是十分安全的。

CAS被設(shè)計為一個獨立的Web應(yīng)用,目前是通過若干個Java servlets來實現(xiàn)的。CAS必須運(yùn)行在支持SSL的web服務(wù)器至上。應(yīng)用程序可以通過三個URL路徑來使用CAS,分別是登錄URL(login URL),校驗URL(validation URL)和登出URL(logout URL)。

cas2

  • 應(yīng)用程序一開始,通常跳過原來的登陸界面,而直接轉(zhuǎn)向CAS自帶的登錄界面。當(dāng)然也可以在應(yīng)用程序的主界面上增加一個登錄之類的按鈕,來完成跳轉(zhuǎn)工作。
  • 如果用戶喜歡的話,也可以手工直接進(jìn)入CAS的登錄界面,先進(jìn)行登錄,在啟動其他的應(yīng)用程序。不過這種模式主要用于測試環(huán)境。
  • CAS的登錄界面處理所謂的“主體認(rèn)證”。它要求用戶輸入用戶名和密碼,就像普通的登錄界面一樣。
  • 主體認(rèn)證時,CAS獲取用戶名和密碼,然后通過某種認(rèn)證機(jī)制進(jìn)行認(rèn)證。通常認(rèn)證機(jī)制是LDAP。
  • 為了進(jìn)行以后的單點登錄,CAS向瀏覽器送回一個所謂的“內(nèi)存cookie”。這種cookie并不是真的保存在內(nèi)存中,而只是瀏覽器一關(guān)閉,cookie就自動過期。這個cookie稱為“ticket-granting cookie”,用來表明用戶已經(jīng)成功地登錄。
  • 認(rèn)證成功后,CAS服務(wù)器創(chuàng)建一個很長的、隨機(jī)生成的字符串,稱為“Ticket”。隨后,CAS將這個ticket和成功登錄的用戶,以及服務(wù)聯(lián)系在一起。這個ticket是一次性使用的一種憑證,它只對登錄成功的用戶及其服務(wù)使用一次。使用過以后立刻失效。
  • 主體認(rèn)證完成后,CAS將用戶的瀏覽器重定向,回到原來的應(yīng)用。CAS客戶端,在從應(yīng)用轉(zhuǎn)向CAS的時候,同時也會記錄原始的URL,因此CAS知道誰在調(diào)用自己。CAS重定向的時候,將ticket作為一個參數(shù)傳遞回去。
  • 例如原始應(yīng)用的網(wǎng)址是http://www./,在這個網(wǎng)址上,一開始有如下語句,轉(zhuǎn)向CAS服務(wù)器的單點登錄頁面https://secure./cas/login?service=http://www./auth.aspx。
  • CAS完成主體認(rèn)證后,會使用下面URL進(jìn)行重定向http://www./authenticate.aspx?ticket= ST-2-7FahVdQ0rYdQxHFBIkKgfYCrcoSHRTsFZ2w-20。
  • 收到ticket之后,應(yīng)用程序需要驗證ticket。這是通過將ticket 傳遞給一個校驗URL來實現(xiàn)的。校驗URL也是CAS服務(wù)器提供的。
  • CAS通過校驗路徑獲得了ticket之后,通過內(nèi)部的數(shù)據(jù)庫對其進(jìn)行判斷。如果判斷是有效性,則返回一個NetID給應(yīng)用程序。
  • 隨后CAS將ticket作廢,并且在客戶端留下一個cookie。
  • 以后其他應(yīng)用程序就使用這個cookie進(jìn)行認(rèn)證(當(dāng)然通過CAS的客戶端),而不再需要輸入用戶名和密碼。

采用.NET 來實現(xiàn)CAS原理的SSO系統(tǒng),在第一個版本的SSO系統(tǒng)基礎(chǔ)上羅列一些問題,有的已經(jīng)是第一個版本的SSO系統(tǒng)中采用的方式。有些問題需要澄清的,

很多人談?wù)搯吸c登錄時,常常和統(tǒng)一用戶,以及單一用戶管理混淆了,要么誤認(rèn)為單點登錄自然實現(xiàn)了單一用戶管理;要么誤認(rèn)為統(tǒng)一用戶或者單一用戶管理就是單點登錄。實際上,這三個概念是有明確的區(qū)別的。

統(tǒng)一用戶就是指不同的系統(tǒng),使用同一套用戶處理的機(jī)制。

  • 用戶ID全局惟一,用戶登錄名,密碼全局唯一,并且統(tǒng)一存儲在單一系統(tǒng)中。
  • 用戶的一些屬性,如姓名、電話、地址、郵件等,統(tǒng)一存儲在單一系統(tǒng)中。盡管各應(yīng)用系統(tǒng)還可以自行增加一些屬性,但是基本的屬性應(yīng)該統(tǒng)一存儲和管理。
  • 應(yīng)用系統(tǒng)不應(yīng)該直接對用戶信息的進(jìn)行增加、修改和刪除,但是可以進(jìn)行查詢。對用戶信息的增加、修改和刪除,應(yīng)該由專門的系統(tǒng)進(jìn)行統(tǒng)一的管理。

很顯然,統(tǒng)一用戶是單點登錄的基礎(chǔ),但是統(tǒng)一用戶并不意味著實現(xiàn)了單點登錄。

單一用戶管理則指所有的用戶管理工作都在唯一的地方進(jìn)行處理,而每個應(yīng)用程序不再保留自己的用戶管理功能。單一用戶管理和統(tǒng)一用戶管理的最大區(qū)別在于,統(tǒng)一用戶管理之后,每個應(yīng)用程序仍然保留自己的用戶管理功能,用于額外的屬性設(shè)置;而單一用戶管理時,每個應(yīng)用程序不再保留自己的用戶管理功能。

在企業(yè)應(yīng)用場景下,所有的用戶信息來自HR系統(tǒng),HR系統(tǒng)中包含的戶信息和部門信息,同時這些信息會存在于公司的活動目錄中。公司采用的是LDAP和數(shù)據(jù)庫連接方式相結(jié)合,正式員工登陸OA系統(tǒng)并不采用LDAP方式認(rèn)證,采用的RSA的token方式認(rèn)證,也就是數(shù)據(jù)庫方式認(rèn)證。對于忘記帶token卡和客戶服務(wù)部的外聘人員沒有token卡的,通過白名單方式允許他們通過LDAP方式認(rèn)證。第一個版本的單點登陸系統(tǒng)使用的HTTP,新版本的集成子系統(tǒng)使用https方式通訊。

術(shù)語解釋:

  • HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容請看SSL。它是一個URI scheme(抽象標(biāo)識符體系),句法類同http:體系。用于安全的HTTP數(shù)據(jù)傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默認(rèn)端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統(tǒng)的最初研發(fā)由網(wǎng)景公司進(jìn)行,提供了身份驗證與加密通訊方法,現(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊。
  • LDAP(全稱是Lightweight Directory Access Protocol),一般都簡稱為LDAP。它是基于X.500標(biāo)準(zhǔn)的,但是簡單多了并且可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規(guī)范在RFC中都有定義,所有與LDAP相關(guān)的RFC都可以在LDAPman RFC網(wǎng)頁中找到。
  • 簡單說來,LDAP是一個得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。LDAP協(xié)議是跨平臺的和標(biāo)準(zhǔn)的協(xié)議,因此應(yīng)用程序就不用為LDAP目錄放在什么樣的服務(wù)器上操心了。實際上,LDAP得到了業(yè)界的廣泛認(rèn)可,因為它是Internet的標(biāo)準(zhǔn)。產(chǎn)商都很愿意在產(chǎn)品中加入對LDAP的支持,因為他們根本不用考慮另一端(客戶端或服務(wù)端)是怎么樣的。LDAP服務(wù)器可以是任何一個開發(fā)源代碼或商用的LDAP目錄服務(wù)器(或者還可能是具有LDAP界面的關(guān)系型數(shù)據(jù)庫),因為可以用同樣的協(xié)議、客戶端連接軟件包和查詢命令與LDAP服務(wù)器進(jìn)行交互

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多