|
不知道BEA是從哪里探聽到我們要用Portal的產(chǎn)品,無論如何要跟我們“探討”一下,于是就來了。 我沒有參與過公司原來和Sun,關(guān)于我們系統(tǒng)業(yè)務(wù)模式的討論,所以聽著還是有些感覺的。BEA在沒有詳細(xì)了解我們的方案的基礎(chǔ)上,基本上得到我們同樣的技術(shù)架構(gòu)和業(yè)務(wù)流程,這一點(diǎn)讓我們有很大的成就感。不過BEA還是有大公司的氣魄,根據(jù)他們所參與的類似項(xiàng)目,針對我們項(xiàng)目擬出了一系列的“注意事項(xiàng)”,有些是我們以往忽略或者完全考慮的東西,獲益非凡。 就交流情況來看,排除價(jià)格因素,BEA的Portal和SUN的沒有太大區(qū)別,都實(shí)現(xiàn)了JSR 168,在個(gè)性化展現(xiàn)等Portal常用功能上都花了很大的功夫。不過BEA的Portal不包括SSO(Single Sign On),這點(diǎn)雖然我們事先知道,但還是讓我們在做選擇時(shí)有些為難。不過,我們在了解SUN的產(chǎn)品的過程中,已基本了解了SUN的SSO的工作原理,一定要我們自己實(shí)現(xiàn)問題也不大。這里簡單說說SUN的SSO,以后有機(jī)會還可以分析一下MicroSoft的PassPort(另一個(gè)單點(diǎn)登錄產(chǎn)品)。
SSO的好處就不多說了,SUN的SSO解決方案是基于COOKIE的,所以它也很容易的實(shí)現(xiàn)了跨域的SSO。在配置了跨域SSO的情況下,某個(gè)用戶在一個(gè)域中經(jīng)過Identity驗(yàn)證后,能夠訪問被同一個(gè)Identity服務(wù)器保護(hù)的另一個(gè)域的網(wǎng)絡(luò)資源。比如說,一個(gè)Identity服務(wù)器位于Domain 1并且作為驗(yàn)證服務(wù)提供者,用戶在Domain 1中被Identity驗(yàn)證,因此Token是在Domain 1中設(shè)置的。另有一Server B位于Domain 2并且受Agent保護(hù),而保護(hù)Server B的是位于Domain 2的另一個(gè)Identity服務(wù)器,Domain 2中的Identity服務(wù)器以Domain 1中的Identity服務(wù)器作為驗(yàn)證服務(wù)器。 假如User A經(jīng)過位于Domain 1中的IDENTITY服務(wù)器進(jìn)行驗(yàn)證以后,他接著訪問Domain 2中的Server B,位于Domain 2中的Agent會檢查該請求是否擁有一個(gè)SSO Token,結(jié)果是沒有屬于Domain 2的令牌。在配置了跨域SSO的情況下,Agent會將用戶請求重定向到位于Domain 2中的Identity Server的跨域SSO Servlet,接著該組件會將用戶的請求重定向到位于Domain 1中的Identity Server服務(wù)器中的跨域處理組件,也就是跨域SSO控制器,因?yàn)槲挥贒omain 1中的Identity Server是驗(yàn)證服務(wù)器。Domain 1中的Identity Server接收到屬于Domain 1的Cookie,負(fù)責(zé)處理SSO的服務(wù)向 Domain 2中的Identity Server發(fā)送一個(gè)SSO Token,Domain 2的驗(yàn)證服務(wù)驗(yàn)證來自Domain 1的SSO Token并且為用戶創(chuàng)建一個(gè)屬于Domain 2的SSO Token,最后為用戶設(shè)置屬于Domain 2的Cookie。在該用戶具有訪問Server B權(quán)限的條件下,用戶可以訪問他所請求的URL。 以圖形化方式表示的跨域SSO流程如下圖所示。 |
|
|