當我開始探索WIF,我有以下疑問:聯合身份驗證令牌在哪裏保存[WIF STS]?
在Windows標識基金會[WIF],尋找到安全令牌服務[STS],我想知道聯合會認證令牌哪裏正在保存?
我認爲它在瀏覽器cookie中,如果有的話,請給我一個關於它的見解嗎?
當我開始探索WIF,我有以下疑問:聯合身份驗證令牌在哪裏保存[WIF STS]?
在Windows標識基金會[WIF],尋找到安全令牌服務[STS],我想知道聯合會認證令牌哪裏正在保存?
我認爲它在瀏覽器cookie中,如果有的話,請給我一個關於它的見解嗎?
我用'Fiddler'Web調試器來找到這個問題的答案。以下是發生的情況:假設您的應用程序的名稱是SecureApp
,您的STS的名稱是SecurePortal
。
將您的瀏覽器指向SecureApp
時發生的第一件事是它會檢查您是否已通過身份驗證。如果您不是,則會立即將您重定向到SecurePortal
並附帶查詢字符串,指示您正在登錄到SecureApp
。
一旦與SecurePortal
登錄時,WIF框架產生從SecurePortal
一個HttpResponse
包含含有其表明您成功登錄值某些「隱藏」的HTML字段。這些值可被簽署和/或基於該設置加密SecurePortal
。隨着這些值寫入一些Javascript代碼,以使瀏覽器將值發送到SecureApp
。一旦這些值通過SecureApp
驗證,框架將編寫一個HttpResponse
,其中包含表明您已登錄的cookie。根據我的經驗,cookie的名稱以「FedAuth」開頭。此時,您現在可以訪問SecureApp
中的頁面。
此外,我想指出,框架似乎有一些方法來防止它設置的cookie被手動刪除。
我建議你使用網絡調試器,並觀察這個過程發生在你自己身上,以便更好地理解。
簡短回答:令牌首先在STS中作爲HttpResponse
發送給您的瀏覽器,然後作爲應用程序中的cookie再次發送給您的瀏覽器。
感謝後起之秀 – Googler 2010-05-30 14:50:53
WIF還支持令牌的「會話模式」。在這種情況下,令牌保存在服務器中,只有一個(小得多)的句柄被傳遞給瀏覽器。如果您有帶寬考慮,特別有用。
見維托裏奧對這篇文章:Session mode for WIF
添加更多的參考資料:
赫維的session at last PDC也包括這一點。
歡迎來到Windows Identity Foundation的世界:-) – 2010-05-24 19:25:30