2014-10-02 65 views
0

我們製作了一個asp.net mvc應用程序,它有一個關聯計劃。跨站點登錄並重定向

我們的子公司希望有可能讓他們的客戶,可能使用後臺代碼(而不是表單)登錄到我們的應用程序。

登錄後,用戶應該被重定向到我們自己的URL之一。

首先,我們需要一些幫助和如何做到這一點的例子。

其次,如果確實有可能,這實際上是一個跨站點腳本的權利?它是如何讓我們受到攻擊?

任何幫助,將不勝感激。

+0

重定向是否需要針對同一個帳戶重複使用,或者這是一次性傳輸,他們將在未來直接進入您的網站?另外,您對附屬網站的工作方式有多大影響?你能讓他們利用你創建的web服務嗎? – guildsbounty 2014-10-02 20:13:41

+0

用戶需要隨時登錄我們的網站,我們沒有任何影響力的聯盟網站。我們不能讓他們挖掘任何東西。只需「點擊登錄」或只是一些鏈接到我們的應用程序需要做到這一點。之後他們在我們的網站上。 – ilans 2014-10-02 20:23:36

回答

1

一個簡單的鏈接不能這樣做安全,重定向的唯一方法是使用一個GET,你永遠想通過重新使用的登錄信息,這樣

這裏是你的選擇...提供一個像Web服務一樣運行的外部控制器。至少包括以下兩個操作。一個從您的網站申請一個新帳戶,傳遞任何必要的信息,另一個作爲「遠程登錄」。這兩個操作只能接受POST並需要HTTPS。在內部,他們不應該通過查詢字符串接受任何數據傳輸,查看POST對象(這是加密的,因此更安全)。

'遠程登錄'操作應該通過您的會員傳遞的用戶名和密碼(在POST對象中加密)並驗證它是否有效。然後它應該生成一個新的隨機值,使用的一個好東西是一個GUID,並返回它。然後,會員將它們重定向到您的站點,並在查詢字符串中傳遞GUID。 GUID作爲他們的一次性登錄令牌(他們將需要一個新的GUID下次登錄)。

如果他們不需要一個特定的帳戶來做你的網站上的東西,那麼你可以省略'創建帳戶',並簡單地給你的子公司一個代碼,他們發送遠程登錄功能,以確認它是他們要求登錄。

你的會員必須做什麼(你可以給他們一塊代碼,並說'放在你的頁面上,它會工作。')實際的遠程登錄是做一個AJAX調用您的網站,請求一次性登錄的GUID。當它收到所述GUID時,它將重定向到您的網站。

這不是最好的選擇可能......當雙方共同努力使用戶保持安全和不可見時,單點登錄類似行爲是最好的,但它是可行的並且合理安全。

+0

非常感謝! :) – ilans 2014-10-03 08:57:52