2012-09-24 51 views
1

假設我有2網站:domain1.com和domain2.com跨域一個簡單的SSO

我實現SSO如下:一旦成功地與domain1.com用戶登錄,我產生一個iframe,讓他在域2 logined .com也是如此。

<iframe width=1 height=1 src="domain2.com/sso-login?username=abc&password=encripted_password" /> 

在domain2.com,我實現了一個方法SSO登錄來處理這個電話,如果用戶名密碼&是有效的,我創建auth-cookie來返回到瀏覽器。因此,當他在其他選項卡中打開domain2.com時,他將自動登錄。

當用戶在domain2.com上登錄時,同樣的流程,我生成一個iframe以使用戶登錄到domain1.com。

我想知道這個實現中是否存在安全漏洞或缺點?我還應該做些什麼來提高安全性?

回答

2

不要發送用戶名和密碼。只有發送身份驗證令牌:

<iframe width=1 height=1 src="https://domain2.com/sso-login?token=<%= Request.Cookies[FormsAuthentication.FormsCookieName].Value %>" /> 

,然後有兩個應用程序共享同一machine keys,使遠程域可以解密,併發出該域名的窗體身份驗證cookie。還要確保您只通過HTTPS發送令牌。

0

您將遇到問題,因爲許多現代瀏覽器不允許在指向另一個域的iframe中設置cookie。