【问题标题】:Where Federation authentication token is saved [WIF STS]?联邦身份验证令牌保存在哪里 [WIF STS]?
【发布时间】:2021-02-13 15:06:03
【问题描述】:

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

在 Windows Identification Foundation[WIF] 中,查看 Security Token Service[STS],我想知道 联合身份验证令牌 保存在哪里?

我认为它在浏览器 cookie 中,如果可以的话,谁能给我一个关于它的见解?

【问题讨论】:

  • 欢迎来到 Windows Identity Foundation 的世界 :-)

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


【解决方案1】:

我使用“Fiddler”网络调试器来找到这个问题的答案。发生的情况如下:假设您的应用程序的名称是 SecureApp,而 STS 的名称是 SecurePortal

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    请参阅 Vittorio 的帖子:Session mode for WIF

    添加了更多参考:

    Hervey 的 session at last PDC 也包含此内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多