我有我認爲是一個相當複雜的問題,所以我會盡我所能在這裏表達它。使用WIF在多個電子商務網站的.NET Web Farm中實現SSO?
我正在尋找單點登錄(SSO)解決方案。我知道那裏有很多選擇,但是我添加了大部分選項,因爲我添加了他們需要滿足的標準。以下是標準:
1.)必須將SSO添加到現有的「系統」中。
2.)現有的「系統」由「X」個網站組成。
3.)所有的「x」網站都是電子商務。
4.)這些網站全部歸Y公司所有,其中95%的系統是內部構建的。
5.)每個「X」個網站都在同一個Web Farm中。
6)所有網站的共享以下組件:
- DAL(數據訪問層)
- 數據庫(車,訂單,用戶,庫存等)
- 認證(表格在WebForms和MVC中進行身份驗證)。
7.)爲了使當前環境正常工作,Machine Key已經在負載平衡服務器之間同步(並且已經有一段時間了)。
8.)由於大流量的流量,需要高可用性和穩定性。
所有這些標準都導致我陷入了WIF和自定義STS的路徑,以便與我們現有的成員身份驗證服務一起使用。像OpenID和其他開源解決方案似乎都傾向於跨公司的互操作性;這是不需要或想要的。理想的解決方案將是100%內部的,並允許用戶在網站「1」上登錄,做他們想做的任何事情,然後轉到網站「2」(也託管在負載平衡器後面,甚至可能在同一網站上web服務器,因爲用戶是網站「1」)並且已經登錄。
下面列出了我所查看的替代方法以及排除它們的相應原因(或者我應該重新考慮這些替代方法中的一些嗎?)。
- OpenID登錄:這是排除了幾個原因,主要是因爲我的 組織正在尋找「內部」 SSO整合與 外部網站或外部網站使用的ID系統不是 期望。 CAS:在大多數情況下,這也看起來像一個體面的選擇。 最終它被排除,因爲它使用的技術(Java, Apache,Maven等)將需要額外的努力和資金來理解,實現,支持和擴展(主要是.NET商店)。
- OAuth:似乎更傾向於通過網絡服務暴露受保護的數據 。完全自定義 (http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx):A 完全自定義方法的執行時間可能太高 並且安全性更關注此方法。
- DotNetOpenAuth:依賴/基於OpenID。
所以問題是:WIF是否可以在我們現有的環境中工作,因爲負載平衡器和已經共享的用戶帳戶數據跨網站,還是有更好的方法?
如果您需要澄清,請告訴我。
編輯:
只是爲了澄清什麼,我希望獲得(或者認爲我試圖實現給定的研究,我已經做了)是:
Current Setup (JPEG hosted on dropbox)
Desired Setup (JPEG hosted on dropbox)
這些網站都是.NET,沒有經典。我對ADFS的理解是,活動目錄是STS驗證用戶聲明的來源(我可能會誤解)。如果是這樣的話,那麼ADFS不是一個可行的選擇,因爲我們的會員資料與AD沒有任何關係。沒有廣告可以使用WIF嗎?如果它不是ADFS,那麼它可以不被負載平衡嗎?此外,我相信我們需要身份驗證和授權,因爲某些用戶的身份驗證後,某些頁面的行爲會有所不同。 – ooPeanutButter
它的工作方式是,您可以將您的STS(對SQL Server進行身份驗證)與ADFS進行聯合。一個自定義的STS可以對任何你想要的進行驗證。您用於授權的屬性可以來自任何AD,SQL Server或LDAP的組合。您不必使用WIF/ADFS進行授權。您可以簡單地將它用於SSO(身份驗證)並將您的授權代碼保存爲 – nzpcmad
看起來好像您的答案是正確的,但是您能否確認這一點與我在編輯中添加的圖表相符?注意圖中完全沒有任何與AD相關的東西。謝謝! – ooPeanutButter