2014-03-03 61 views
0

我有3個域名domain-a.com和domain-b.com也domaine-c.com 和我想要使用SSO,如果您登錄到其中一個域可以訪問所有其他域。使用WebService在不同域之間集成SSO?

1 - 使用Cookie是不可能的,因爲我們不能與型動物域相同的cookie

2 - 我想使用web服務,但我不擅長在,所以我想知道如果這是一個很好的解決方案

如果您有任何建議或建議或任何事情請我需要你。

+0

以下是可能的解決方案:http://stackoverflow.com/a/45010/3079918 – magnetronnie

+0

請參閱:http://www.jasny。 net/articles/simple-single-sign-on-for-php/ –

+0

謝謝,但我在考慮web服務:) – user3161609

回答

0

你不能共享cookie,但你不需要。

比方說,您的SSO上sso.domain.com

要登錄在a.domain.com運行:

  1. 做一個XMLHttpRequest請求sso.domain.com來檢查,如果你有一個會議。

  2. 如果您有會話並已登錄,您將獲得登錄token

  3. 您使用XMLHTTPRequest將token傳遞給應用程序A。它向sso.domain.com發送請求以驗證令牌並獲取用戶憑據。

  4. 您現在已經在a.domain.com

此安裝程序需要跨站點資源共享的sso域啓用。 CORS實現允許您在水下下執行登錄過程,不需要重定向。

你一個深入看看CORS看到:http://fritsvancampen.wordpress.com/2013/02/03/cross-site-origin-requests-aka-cross-origin-resource-sharing/

0

我用SimpleSAMLPHP ..(https://simplesamlphp.org/

這讓我做出一個地方,我可以問,如果在登錄用戶的整個事情的用途。 SAML2這是一種安全的標記語言(http://en.wikipedia.org/wiki/SAML_2.0)。

它可以是一個陡峭的學習曲線,使其工作,但它非常安全,一切都使用證書進行加密。好的是你可以使用你能想到的所有IDP(身份提供者)。這意味着你可以實現Facebook,谷歌等登錄以及自定義登錄的。

另一件好事是它還提供了SLO(單一註銷)。這將觸發在當前登錄的所有應用程序中註銷。