我有兩個應用程序,一個是桌面客戶端,另一個是可選嵌入桌面客戶端的Web應用程序。兩者都使用單獨的數據庫和單獨的用戶驗證機制與單獨的服務器通信服務器可以相互通信。客戶端服務器和Web應用程序之間的身份驗證
我需要能夠登錄到桌面應用程序並使用嵌入式Web應用程序,而無需輸入Web客戶端的用戶名/密碼。
網絡應用程序是在我們這邊開發的,所以可以進行重大更改(在合理範圍內)。架構是Windows上的.NET(IIS和SQL Server)。
桌面應用程序是在別處開發的,所以更改應該儘可能少;使http請求和傳遞一個令牌是好的,但創建一個新的認證機制不是。架構不明,解決方案應該是平臺獨立的。
我可以在兩臺服務器之間使用某種信任來創建一次性身份驗證令牌,桌面客戶端可以將這種令牌傳遞給Web客戶端以創建會話?
這個或其他類似用例可以插入嗎?請注意,不得要求互聯網連接,只保證訪問兩臺服務器。
如果沒有任何容易/快速/免費的解決方案,我想是這樣的(d是桌面應用程序,W是Web應用程序):在給客戶d
- 用戶登錄並希望打開客戶端W¯¯
- 服務器d要求服務器W爲特定用戶
- 服務器W令牌創建新的令牌,在內部把它映射到所請求的用戶名和到客戶端返回令牌
- 客戶d日誌W¯¯使用用戶名和標記
- 服務器W創建一個新的會話,而忘記了令牌,因此它不能再被使用
服務器之間的流量將通過SSL/TLS,IP白名單中,使用預配置的密碼認證,包括獨特的計數器和時間戳防止重播攻擊。
桌面客戶端將通過嵌入式瀏覽器向服務器發送請求,從而與Web應用程序通信。對於身份驗證,它將HTTPS POST用戶名和令牌到登錄頁面。
客戶端與其代表服務器之間的通信被認爲是安全的。
有什麼我仍然失蹤?
謝謝。
不錯,這是更清潔!此外,感謝有關SSL和重播攻擊的領導:) – 2014-10-28 13:56:54