我已被分配到查找在我們的產品中實現SSO的方法。我們有幾個Winform應用程序和一個asp.net 4.0 web應用程序(而不是MVC)。單點登錄WinForms應用程序和asp.net wep應用程序
所有產品都使用.Net 4.0構建,Web應用程序爲ASP.NET 4.0。一些Winforms通過web服務(asmx)與我們的API進行通信,一些則直接使用我們的API。 Web應用程序也使用相同的API。我們提供一組使用相同API的外部客戶端的Web服務(asmx)。
目前,我們已經在我們的系統,我們自己的身份認證實施方案(用戶名,密碼,角色),我們想更換與SSO。或者這兩種認證制度可以以某種方式共存? Winforms在Intranet中使用,Web應用程序在Intranet中使用,我們還託管客戶端的Web應用程序(可從Internet訪問)。
的用戶在我們的系統中創建的,但在同一時間,我們用我們自己的工具導入用戶從Active Directory。活動目錄實際上是主要的用戶來源。
我已閱讀關於Windows身份基礎和我不知道我是否可以使用它來實現SSO。但我不明白的是,如何在Winform應用程序中直接使用API時使用WIF。
我想達成什麼是從系統中刪除所有的用戶管理和使用Active Directory作爲用戶來源。我想這意味着使用ADFS 2.0創建索賠等
我可以使用.Net框架4.5在此實現(我知道,WIF現在在.Net框架4.5中的頭等公民)。
你有什麼建議如何做到這一點? WIF是在Winforms應用程序和Web應用程序之間實現SSO的最佳選擇嗎?
非常徹底的答案,Wiktor :)所以沒有WebBrowser控件的Winforms沒有辦法使用WIF?最好的方法可能是重構所有Winform應用程序以使用WCF服務,並讓WIF從那裏開始工作? – OKB
我不確定活動場景(通過WCF的WIF)是否更好。假設ADFS與另一個自定義STS聯合,然後通過Oauth2與Google聯合。被動場景會輕鬆處理(這只是少數重定向問題),但活動場景將失敗。在我們的系統中,我們決定採用被動方案,我們在我們的勝利形式應用程序中託管網絡瀏覽器,我們捕獲本地身份驗證cookie並向cookie提供Web服務代理,以便服務器將勝利表單應用程序識別爲已驗證身份。它現在工作了2年,沒有重大問題。 –