2011-10-06 51 views
7

我有我認爲是一個相當複雜的問題,所以我會盡我所能在這裏表達它。使用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)

回答

2

ADFS v2.0僅針對AD進行身份驗證。如果您當前的身份驗證方法是其他內容(例如SQL Server),那麼您需要一個自定義STS。

這些應用程序是否都是ASP.NET?

如果是這樣,他們都需要使用WIF啓用聲明。

如果不是,例如, Java你必須用另一個解決方案來保護它們,例如OpenSSO/Ping將此產品與ADFS聯合並聯合。

如果傳統ASP,有辦法允許ADFS處理身份驗證但授權是一個問題。角色將位於經典ASP無法訪問的聲明對象中。你也可以爲此使用C2WTS。

您正在查看身份驗證或授權或兩者嗎? ADFS在索賠對象內提供角色,因此程序中的現有授權機制可能必須更改。

您可以負載均衡ADFS站點。

ADFS肯定可以在所有站點上啓用SSO。它還可能允許您聯合其他網站/組織,並通過Azure ACS使用外部憑據(例如Facebook),如果這是您未來需要考慮的事情。

它還允許您與SharePoint 2010,CRM Dynamics 2010和Office 365集成,所有這些功能都已啓用聲明。

+0

這些網站都是.NET,沒有經典。我對ADFS的理解是,活動目錄是STS驗證用戶聲明的來源(我可能會誤解)。如果是這樣的話,那麼ADFS不是一個可行的選擇,因爲我們的會員資料與AD沒有任何關係。沒有廣告可以使用WIF嗎?如果它不是ADFS,那麼它可以不被負載平衡嗎?此外,我相信我們需要身份驗證和授權,因爲某些用戶的身份驗證後,某些頁面的行爲會有所不同。 – ooPeanutButter

+0

它的工作方式是,您可以將您的STS(對SQL Server進行身份驗證)與ADFS進行聯合。一個自定義的STS可以對任何你想要的進行驗證。您用於授權的屬性可以來自任何AD,SQL Server或LDAP的組合。您不必使用WIF/ADFS進行授權。您可以簡單地將它用於SSO(身份驗證)並將您的授權代碼保存爲 – nzpcmad

+0

看起來好像您的答案是正確的,但是您能否確認這一點與我在編輯中添加的圖表相符?注意圖中完全沒有任何與AD相關的東西。謝謝! – ooPeanutButter