不知道BEA是從哪里探聽(tīng)到我們要用Portal的產(chǎn)品,無(wú)論如何要跟我們“探討”一下,于是就來(lái)了。
我沒(méi)有參與過(guò)公司原來(lái)和Sun,關(guān)于我們系統業(yè)務(wù)模式的討論,所以聽(tīng)著(zhù)還是有些感覺(jué)的。BEA在沒(méi)有詳細了解我們的方案的基礎上,基本上得到我們同樣的技術(shù)架構和業(yè)務(wù)流程,這一點(diǎn)讓我們有很大的成就感。不過(guò)BEA還是有大公司的氣魄,根據他們所參與的類(lèi)似項目,針對我們項目擬出了一系列的“注意事項”,有些是我們以往忽略或者完全考慮的東西,獲益非凡。
就交流情況來(lái)看,排除價(jià)格因素,BEA的Portal和SUN的沒(méi)有太大區別,都實(shí)現了JSR 168,在個(gè)性化展現等Portal常用功能上都花了很大的功夫。不過(guò)BEA的Portal不包括SSO(Single Sign On),這點(diǎn)雖然我們事先知道,但還是讓我們在做選擇時(shí)有些為難。不過(guò),我們在了解SUN的產(chǎn)品的過(guò)程中,已基本了解了SUN的SSO的工作原理,一定要我們自己實(shí)現問(wèn)題也不大。這里簡(jiǎn)單說(shuō)說(shuō)SUN的SSO,以后有機會(huì )還可以分析一下MicroSoft的PassPort(另一個(gè)單點(diǎn)登錄產(chǎn)品)。

SSO的好處就不多說(shuō)了,SUN的SSO解決方案是基于COOKIE的,所以它也很容易的實(shí)現了跨域的SSO。在配置了跨域SSO的情況下,某個(gè)用戶(hù)在一個(gè)域中經(jīng)過(guò)Identity驗證后,能夠訪(fǎng)問(wèn)被同一個(gè)Identity服務(wù)器保護的另一個(gè)域的網(wǎng)絡(luò )資源。比如說(shuō),一個(gè)Identity服務(wù)器位于Domain 1并且作為驗證服務(wù)提供者,用戶(hù)在Domain 1中被Identity驗證,因此Token是在Domain 1中設置的。另有一Server B位于Domain 2并且受Agent保護,而保護Server B的是位于Domain 2的另一個(gè)Identity服務(wù)器,Domain 2中的Identity服務(wù)器以Domain 1中的Identity服務(wù)器作為驗證服務(wù)器。
假如User A經(jīng)過(guò)位于Domain 1中的IDENTITY服務(wù)器進(jìn)行驗證以后,他接著(zhù)訪(fǎng)問(wèn)Domain 2中的Server B,位于Domain 2中的Agent會(huì )檢查該請求是否擁有一個(gè)SSO Token,結果是沒(méi)有屬于Domain 2的令牌。在配置了跨域SSO的情況下,Agent會(huì )將用戶(hù)請求重定向到位于Domain 2中的Identity Server的跨域SSO Servlet,接著(zhù)該組件會(huì )將用戶(hù)的請求重定向到位于Domain 1中的Identity Server服務(wù)器中的跨域處理組件,也就是跨域SSO控制器,因為位于Domain 1中的Identity Server是驗證服務(wù)器。Domain 1中的Identity Server接收到屬于Domain 1的Cookie,負責處理SSO的服務(wù)向 Domain 2中的Identity Server發(fā)送一個(gè)SSO Token,Domain 2的驗證服務(wù)驗證來(lái)自Domain 1的SSO Token并且為用戶(hù)創(chuàng )建一個(gè)屬于Domain 2的SSO Token,最后為用戶(hù)設置屬于Domain 2的Cookie。在該用戶(hù)具有訪(fǎng)問(wèn)Server B權限的條件下,用戶(hù)可以訪(fǎng)問(wèn)他所請求的URL。
以圖形化方式表示的跨域SSO流程如下圖所示。

聯(lián)系客服