2012-11-08 57 views
1

目前我們有一個典型的Web應用程序,所有客戶端都使用其憑據訪問和登錄。ASP.NET/SingleSignOn/SAML webapp基於URL請求繞過登錄屏幕

其中一個客戶端不想使用他們的憑據登錄,而是他們將在URL中傳遞用戶名,fname,lname,並且他們應該自動登錄,如果他們有一個acct或否則我們需要創建用戶帳戶在飛行中並登錄它們。

Web應用程序應該對其他客戶端採用相同的方式。這怎麼能實現。我們是否需要使用任何單一方法(SAML等)?

概述的要求:

請求URL - >確定如果客戶端是A - >如果是,那麼請檢查在傳遞的url,存在於分貝值 - >如果是,那麼在自動記錄他們 - >如果沒有創建一個記錄與傳遞的值,然後記錄他們在

--->如果客戶端不是然後把他們送到登錄屏幕

回答

1

如果您計劃只根據某些URL值你的決定爲了允許自動登錄,您在這裏創建了一個非常安全的漏洞。

相反,您應該有一些可配置的機制,其中系統管理員將某些IP地址映射到特定用戶。這樣,當用戶請求一個頁面時,你檢查來自哪個請求的IP是否屬於某個特定的客戶端。如果是,則將他/她登錄到其他人,然後將他們發送到登錄屏幕。這也是一個安全漏洞,但規模較小,因爲直到他們知道哪些IP映射到用戶並直到他們使用某些IP欺騙軟件纔會獲得訪問權限。

也許你可以把URL密鑰和IP映射的雙重檢查,這將使它更緊。

最好的選擇是使用單點登錄技術,如實時身份驗證。但需要更多的努力,並且仍然要求用戶第一次使用live-id登錄。

編輯 - >

如果您使用的是自定義的驗證機制,那麼你有兩個選擇 1.更改你的登錄頁面,以檢測該請求的IP,並有自動登錄所選用戶 2.編寫一個http處理程序,它將檢查請求來自何處,並相應地自動登錄選定的用戶。

我希望你能理解我所說的「自動登錄」中涉及的所有事情。例如設置會話變量/用戶名,在頁面上顯示用戶名等

+0

我們計劃通過IP映射,我明白這個缺點,但是你能讓我知道我怎麼能繞過用戶從一個特定的客戶端登錄和顯示其他客戶的登錄信息。此時我需要做出這種改變。 – user1810502

+0

我編輯了我的答案,請檢查 –