2010-05-24 161 views
2

當我開始探索WIF,我有以下疑問:聯合身份驗證令牌在哪裏保存[WIF STS]?

在Windows標識基金會[WIF],尋找到安全令牌服務[STS],我想知道聯合會認證令牌哪裏正在保存?

我認爲它在瀏覽器cookie中,如果有的話,請給我一個關於它的見解嗎?

+0

歡迎來到Windows Identity Foundation的世界:-) – 2010-05-24 19:25:30

回答

3

我用'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再次發送給您的瀏覽器。

+0

感謝後起之秀 – Googler 2010-05-30 14:50:53

0

WIF還支持令牌的「會話模式」。在這種情況下,令牌保存在服務器中,只有一個(小得多)的句柄被傳遞給瀏覽器。如果您有帶寬考慮,特別有用。

見維托裏奧對這篇文章:Session mode for WIF

添加更多的參考資料:

赫維的session at last PDC也包括這一點。