ZT- 什么是單點登陸SSO

          Posted on 2007-06-18 14:17 my 閱讀(1685) 評論(0)  編輯  收藏 所屬分類: 個人收藏

          什么是單點登陸

          單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。它包括可以將這次主要的登錄映射到其他應(yīng)用中用于同一個用戶的登錄的機(jī)制。

          單點登陸的技術(shù)實現(xiàn)機(jī)制

          當(dāng)用戶第一次訪問應(yīng)用系統(tǒng)1的時候,因為還沒有登錄,會被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行登錄;根據(jù)用戶提供的登錄信息,認(rèn)證系統(tǒng)進(jìn)行身份效驗,如果通過效驗,應(yīng)該返回給用戶一個認(rèn)證的憑據(jù)--ticket;用戶再訪問別的應(yīng)用的時候就會將這個ticket帶上,作為自己認(rèn)證的憑據(jù),應(yīng)用系統(tǒng)接受到請求之后會把ticket送到認(rèn)證系統(tǒng)進(jìn)行效驗,檢查ticket的合法性。如果通過效驗,用戶就可以在不用再次登錄的情況下訪問應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3了。

          要實現(xiàn)SSO,需要以下主要的功能:

          1、所有應(yīng)用系統(tǒng)共享一個身份認(rèn)證系統(tǒng)。

          統(tǒng)一的認(rèn)證系統(tǒng)是SSO的前提之一。認(rèn)證系統(tǒng)的主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進(jìn)行登錄認(rèn)證;認(rèn)證成功后,認(rèn)證系統(tǒng)應(yīng)該生成統(tǒng)一的認(rèn)證標(biāo)志(ticket),返還給用戶。另外,認(rèn)證系統(tǒng)還應(yīng)該對ticket進(jìn)行效驗,判斷其有效性。

          2、所有應(yīng)用系統(tǒng)能夠識別和提取ticket信息

          要實現(xiàn)SSO的功能,讓用戶只登錄一次,就必須讓應(yīng)用系統(tǒng)能夠識別已經(jīng)登錄過的用戶。應(yīng)用系統(tǒng)應(yīng)該能對ticket進(jìn)行識別和提取,通過與認(rèn)證系統(tǒng)的通訊,能自動判斷當(dāng)前用戶是否登錄過,從而完成單點登錄的功能。

          另外:

          1、單一的用戶信息數(shù)據(jù)庫并不是必須的,有許多系統(tǒng)不能將所有的用戶信息都集中存儲,應(yīng)該允許用戶信息放置在不同的存儲中,如下圖所示。事實上,只要統(tǒng)一認(rèn)證系統(tǒng),統(tǒng)一ticket的產(chǎn)生和效驗,無論用戶信息存儲在什么地方,都能實現(xiàn)單點登錄。

          2、統(tǒng)一的認(rèn)證系統(tǒng)并不是說只有單個的認(rèn)證服務(wù)器

          認(rèn)證服務(wù)器之間要通過標(biāo)準(zhǔn)的通訊協(xié)議,互相交換認(rèn)證信息,就能完成更高級別的單點登錄。如:當(dāng)用戶在訪問應(yīng)用系統(tǒng)1時,由第一個認(rèn)證服務(wù)器進(jìn)行認(rèn)證后,得到由此服務(wù)器產(chǎn)生的ticket。當(dāng)他訪問應(yīng)用系統(tǒng)2的時候,認(rèn)證服務(wù)器2能夠識別此ticket是由第一個服務(wù)器產(chǎn)生的,通過認(rèn)證服務(wù)器之間標(biāo)準(zhǔn)的通訊協(xié)議(例如SAML)來交換認(rèn)證信息,仍然能夠完成SSO的功能。

          WEB-SSO的實現(xiàn)

          用戶在訪問頁面1的時候進(jìn)行了登錄,但是客戶端的每個請求都是單獨的連接,當(dāng)客戶再次訪問頁面2的時候,如何才能告訴Web服務(wù)器,客戶剛才已經(jīng)登錄過了呢?瀏覽器和服務(wù)器之間有約定:通過使用cookie技術(shù)來維護(hù)應(yīng)用的狀態(tài)。Cookie是可以被Web服務(wù)器設(shè)置的字符串,并且可以保存在瀏覽器中。當(dāng)瀏覽器訪問了頁面1時,web服務(wù)器設(shè)置了一個cookie,并將這個cookie和頁面1一起返回給瀏覽器,瀏覽器接到cookie之后,就會保存起來,在它訪問頁面2的時候會把這個cookie也帶上,Web服務(wù)器接到請求時也能讀出cookie的值,根據(jù)cookie值的內(nèi)容就可以判斷和恢復(fù)一些用戶的信息狀態(tài)。Web-SSO完全可以利用Cookie結(jié)束來完成用戶登錄信息的保存,將瀏覽器中的Cookie和上文中的Ticket結(jié)合起來,完成SSO的功能。
          為了完成一個簡單的SSO的功能,需要兩個部分的合作:

          1、統(tǒng)一的身份認(rèn)證服務(wù)。

          2、修改Web應(yīng)用,使得每個應(yīng)用都通過這個統(tǒng)一的認(rèn)證服務(wù)來進(jìn)行身份效驗。

          后記

          大概就是這樣,如果還需要更詳細(xì)的調(diào)研,可以到這里


          posts - 63, comments - 45, trackbacks - 0, articles - 99

          Copyright © my

          主站蜘蛛池模板: 阳新县| 阳东县| 嘉义市| 根河市| 农安县| 沿河| 宜兴市| 浦县| 仁布县| 吉木乃县| 滨海县| 天台县| 靖宇县| 黄浦区| 滕州市| 海林市| 收藏| 毕节市| 仙桃市| 松江区| 萨迦县| 桑植县| 永济市| 崇左市| 出国| 平原县| 观塘区| 义乌市| 嵩明县| 曲沃县| 汉川市| 韩城市| 井陉县| 长兴县| 岑溪市| 荣昌县| 喀什市| 南投市| 玉树县| 思茅市| 大渡口区|