保存联合身份验证令牌的位置[WIF STS]?

时间:2010-05-24 13:49:13

标签: .net wif windows-identity sts-securitytokenservice

当我开始探索WIF时,我对以下内容表示怀疑:

在Windows Identification Foundation [WIF]中,查看安全令牌服务[STS],我想知道联合身份验证令牌的保存位置在哪里?

我认为它在浏览器cookie中,如果是这样,有人可以给我一个洞察力吗?

2 个答案:

答案 0 :(得分:3)

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

当您将浏览器指向SecureApp时,首先发生的事情是检查您是否经过身份验证。如果不是,您会立即被重定向到SecurePortal,并带有一个查询字符串,表明您正在登录SecureApp

使用SecurePortal登录后,WIF框架会从HttpResponse生成SecurePortal,其中包含一些“隐藏”的HTML字段,其中包含表明您已成功登录的值。这些值可以基于SecurePortal的设置进行签名和/或加密。除了这些值之外,还会编写一些Javascript代码,以使浏览器将值发布到SecureApp。一旦SecureApp验证了这些值,框架就会编写一个带有cookie的HttpResponse,表明您已登录。根据我的经验,cookie的名称以“FedAuth”开头。此时,您现在可以访问SecureApp内的页面。

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

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

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

答案 1 :(得分:0)

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

见维托里奥的帖子:Session mode for WIF

添加了更多参考资料:

赫维的session at last PDC也涵盖了这一点。