2013-04-15 58 views

回答

1

如果所有服務都位於單個域中(例如service1.example.com,service2.example.com等),則可以直接在頂級域名(example.com)上設置cookie並且那麼所有服務都可以使用同一個會話,因爲它們都可以訪問該會話cookie。

因此,一種方法是將用戶重定向到login.example.com,當他們單擊任何其他網站(service * .example.com)上的登錄按鈕時。該登錄服務將使用Persona來要求用戶登錄,然後它將在example.com上設置cookie。

這種策略當然不是特定於Persona,它是在公司內部服務之間獲取SSO的常用方式。

+0

你好,這個解決方案假設後端有共享會話存儲,每個域服務都可以訪問它,是嗎? – Anton

+0

是的,它確實假設共享會話存儲。如果你不能擁有這些,我想你可以簡單地在每個服務上使用Persona。雖然技術上不會獲得SSO,但您的用戶仍可以登錄每項服務,而無需在每個服務上鍵入電子郵件和密碼。 –