2

当我开始探索 WIF 时,我对以下几点有疑问:

在 Windows 标识基础 [WIF] 中,查看安全令牌服务 [STS],我想知道联合身份验证令牌保存在哪里?

我认为它在浏览器 cookie 中,如果是这样,任何人都可以给我一个关于它的见解吗?

4

2 回答 2

3

我使用'Fiddler' Web 调试器来找到这个问题的答案。以下是发生的情况:假设您的应用程序SecureApp的名称是,您的 STS 的名称是SecurePortal.

当您将浏览器指向时发生的第一件事SecureApp是它会检查您是否已通过身份验证。如果你不是,你会立即被重定向到SecurePortal一个查询字符串,表明你正在登录SecureApp

一旦您使用 登录SecurePortal,WIF 框架会生成一个其中包含一些“隐藏”的 HTML 字段HttpResponseSecurePortal其中包含指示您成功登录的值。这些值可能会根据SecurePortal. 除了这些值之外,还编写了一些 Javascript 代码,以使浏览器将这些值发布到SecureApp. 一旦这些值通过 验证SecureApp,框架将写入一个HttpResponse带有 cookie 的文件,表明您已登录。根据我的经验,cookie 的名称以“FedAuth”开头。此时,您现在可以访问SecureApp.

另外,我想指出,该框架似乎有某种方法可以防止它设置的 cookie 被手动删除。

我建议您使用网络调试器并自己观察此过程以更好地理解。

简短的回答:令牌首先HttpResponse在 STS 中作为 cookie 提供给您的浏览器,然后在应用程序中作为 cookie 再次提供给您的浏览器。

于 2010-05-24T19:23:00.693 回答
0

WIF 还支持令牌的“会话模式”。在这种情况下,令牌保存在服务器中,并且只有一个(小得多的)句柄被传递给浏览器。如果您有带宽考虑,则特别有用。

请参阅 Vittorio 的帖子:WIF 的会话模式

添加了更多参考:

Hervey在上届 PDC 上的会议也涵盖了这一点。

于 2010-05-27T17:23:09.363 回答