我打算實施一個面向外部的ASP.NET Web應用程序以及一個Windows Communication Foundation(WCF)服務提供一個外部可用的API 。我將通過使用Windows Identity Foundation(WIF)滾動自己的安全令牌服務(STS)來爲Web應用程序和服務提供安全性。WIF STS實現檢查活動ASP.NET登錄/會話與ADSF綁定
爲我準備如何實現這個被這些文章中描述的基本知識: http://msdn.microsoft.com/en-us/magazine/ee335707.aspx 和 http://devproconnections.com/development/generating-saml-tokens-wif-part-2
由維托裏奧Bertocci的優秀圖書的主題所提供的信息相結合: http://www.amazon.com/Programming-Windows-Identity-Foundation-Dev/dp/0735627185/ref=sr_1_6?ie=UTF8&qid=1366300926&sr=8-6&keywords=vittorio+bertocci
我應該有我需要的所有工具和信息來完成這項任務。該應用程序的用例如下:用戶登錄到我們擁有的ASP .NET Web應用程序,包括用戶身份驗證和授權機制。在此應用程序中,他們點擊一個鏈接,使用SAML單點登錄(SSO)到第三方應用程序(與我們有緊密的業務關係)。在這個第三方應用程序中,用戶可以透明地處理我們存儲在組織內部另一個應用程序中的文件。基本上,他們會對我的Web應用程序/ WCF服務執行透明/靜默SAML SSO,以在登錄到第三方Web應用程序時保存或檢索文檔。
就像我之前說過的,我認爲我有如何在此過程中實施授權和認證的基礎知識。
但是,我的安全小組詢問的一件事是,我們確保登錄到第三方網站的用戶從外部暴露但完全由我們擁有的原始Web應用程序擁有活動與網站會話。簡而言之,我們需要確保該用戶實際登錄到站點A,正在使用站點B,但希望通過確保它們實際上已登錄站點A靜止來訪問站點C上的資源。
我如何獲得關於此用戶的此信息?現在,我確實爲站點A推出了自己的角色提供程序,但通過使用舊版用戶名/密碼機制的表單身份驗證來執行身份驗證,該機制不包括使用ASP .NET 2.0「標準」成員資格提供程序。因此,Security.Web.Membership不適用於我。
最後,這個過程將適用於我們的活動目錄中的內部用戶,他們將從我們的內部網絡登錄到站點B,然後再次與站點C一起工作。我相信我們將使用ADFS v2進行身份驗證。有關確保所述用戶在AD認證之前處於活動狀態的任何提示?
感謝您的回覆。我確信我們無法實現長時間運行的HTTP連接,原因很多,包括所需的資源。我不確定我是否理解您所描述的會話cookie標記機制。只是FYI我可以完全訪問網站A和C.我基本擁有它們。我們也在A站點的數據庫中跟蹤基於用戶的頁面訪問。但是,如果他們瀏覽網站B,他們很可能在網站A上沒有任何「近期」活動。 – Dan7el
那麼,您如何建議確定用戶是否「登錄」了網站A? – dthorpe
我認爲這是我問的問題。網站A有一個會話狀態cookie和一個表單身份驗證cookie。表單auth cookie確實有一個與其關聯的超時。我已經確認,用戶可以登錄到站點A,SSO到站點B,並在站點A上創建表單驗證cookie超時,同時它們是擴展瀏覽站點B.我不太熟悉整體SAML SSO流程(現在)。當用戶從站點A登錄到站點B時,是否存在存儲在用戶計算機上的SAML SSO令牌cookie?你是否想把這個超時設置爲一個較低的數字? – Dan7el