2012-11-10 78 views
0

我的組織希望能夠創建一些網站,即與不同的子域,但在同一個域上,即foo.organization.com,bar.organization.com等用戶最好只需要登錄到一個站點,然後登錄到其他站點。可能有不同的服務器端平臺用於實現這些子域名站點(一些ASP.NET MVC,可能是Django,也許是Ruby等),所以這個解決方案應該最好是跨平臺的。其中一個子域將託管主數據庫的API,最好它應該支持服務器到服務器身份驗證以及從客戶端代碼使用API​​。單一登錄在同一個域上的多個網站上

有什麼建議我們應該走什麼路線?

問候, 丹尼爾

回答

0

非常有趣!我想知道這與wamp或lamp服務器不一樣。我有44個網站現在在Localhost/each_sites_name/index.php名稱空間下的一臺Lamp服務器上運行。要做潛艇你將不得不創建一個site_name並將其他人放在其下一層。

mainsite site1的 站點2 site3 site4等

+0

那麼,因爲這些網站可能使用不同的框架,因此可能使用不同的網絡服務器,我寧願在不同的機器上工作的解決方案。 – dabs

0

什麼你要找的是單點登錄。有幾個很好的解決方案可以解決您所描述的需求。你可以研究SAML,CAS,OpenID和其他。

我個人推薦RubyCAS - 這是Ruby中的Jasig's CAS protocol的實現。我發現它更容易設置,雖然兩者都很好。

任何基於Web的應用程序(甚至是基於Web的應用程序)都可以將其身份驗證委託給它。它的工作原理與您對Google應用進行身份驗證的方式類似。如果您未訪問正在訪問的特定站點上的會話,則會重定向到CAS服務器上的登錄表單,如果能夠進行身份驗證,則會返回一張票據。然後在後臺驗證票證以確保其有效。

有很多CAS客戶端用於各種平臺。我可以親自擔保rubycas clientphpCAS。看起來像some for Django,並且對於傳統的apache服務的應用程序,您可以使用mod_auth_cas,這基本上是CASsified HTTP基本身份驗證。

+0

聽起來很有希望。您是否會知道這是否適用於基本上由包含JavaScript代碼的靜態HTML頁面組成的應用程序,並與API交互以讀取/寫入數據?即用戶是否可以登錄到該應用程序以及傳遞給API的登錄信息(即票證/訪問cookie)? – dabs

+0

這聽起來像你想要使用Apache模塊mod_auth_cas的例子。您將保護您的應用所在的子目錄,並且如果未經身份驗證的用戶嘗試訪問該目錄,他將被髮送到CAS服務器登錄頁面。它不需要修改任何你的代碼,這很好。 – dearlbry

相關問題