2010-08-26 99 views

回答

8

您將j2ee添加爲標籤,因此我將假設這是一個java問題。您可以在代碼中實現單點登錄...以及編寫代碼。使用內置的j2ee認證或推出自己的認證。

看到這個答案的可能性:Single sign-on in Java EE

的基本策略是發明某種共享的cookie策略,所有的網站都可以閱讀。例如,如果您正在爲xyz.company.com和abc.company.com開發單一登錄解決方案,則可以通過company.com路徑發送某種會話cookie。這兩個網站都可以訪問此會話,並看到「哦,這傢伙之前登錄過。」

當您將用戶認證爲完全不同的網站(如MySiteA.com和MySiteB.com)時,還有一些網絡單點登錄策略。

爲了防止重放攻擊,您需要攜帶某種通用會話存儲,以便您的網頁可以在每個頁面請求中驗證此cookie。您沒有標記此.NET,但是在.NET中,這意味着您必須將會話狀態從IIS工作進程移出,當您爲Web應用程序選擇文件>新建項目時,這不是默認設置。

您的應用程序必須警惕每個傳入的Web請求,因爲您現在將該Cookie信任爲「票證」或「入口證明」。您需要一種策略來取消對該cookie的授權(在註銷或超時或其他方面)。

大多數Web框架(包括J2EE,.NET或WebSphere等應用程序服務器)都有相應的解決方案。你必須研究它們並熟悉你所需要的技術。

您還可以購買第三方訪問軟件,如CA Siteminder。在這種情況下,您不需要編寫身份驗證和訪問代碼,而是讓他們的Web代理在應用程序前守護。他們還爲多個網站提供單點登錄解決方案,可能共享或不共享高級別的域。

我不明確推薦此產品。我在說你問了一個非常非常大的問題,並且你可以用java來解決你的問題,或者購買試圖做同樣事情的第三方產品。

這是一個巨大的話題,我沒有試圖詳細覆蓋。這不是一個足夠的答案。問題是,在獲得更具體的幫助和指導之前,您需要選擇更多的架構。

相關問題