【问题标题】:Authenticating extranet web site in iframe using Windows Identity Foundation使用 Windows Identity Foundation 在 iframe 中验证外联网网站
【发布时间】:2013-01-24 14:47:35
【问题描述】:

场景:一些网站必须通过我公司外联网上的 iframe 显示。 Extranet 使用 SSL 和基于 Active Directory 的 Windows 身份验证。每个 iframe 的网站都需要经过身份验证的用户,但要求用户不应被要求手动登录。每个网站的身份验证机制尚未确定。

问题:我需要了解如何在 iframe 中完成自动登录。我可以要求 iframe 的网站使用适合我目的的特定身份验证机制,尽管我确实需要向它们提供来自 AD 的特定用户信息。

有人建议我使用 Windows Identity Foundation 来解决身份验证挑战。我正在考虑两种解决方案,但作为 WIF 新手,我不确定哪个更好,也不知道它们是否可行。

解决方案 1:我使用 AD 声明创建自定义安全令牌服务。当用户浏览到我的一个 iframe 页面时,该页面以编程方式从 STS 获取令牌,并以某种方式将令牌添加到 iframe。查看网上的示例,我相信我了解如何构建 STS 并以编程方式获取令牌。但是如何将它与 iframe 一起使用?将其插入 iframe URL (http://website/default.aspx?token=xxx) 似乎不安全。

解决方案 2:我创建了相同的 STS。 iframe 的网站配置为使用 STS 作为身份验证提供程序。当用户浏览到我的 iframe 页面之一时,iframe 的网站会自动查询 STS 以获取令牌,并将用户登录。但是 iframe 的 Web 部件如何获取令牌 - 原始用户是否可用请求上下文,或者它是如何工作的?这完全可以在 iframe 中完成吗?我记得读过一些关于 iframe 中不允许使用 cookie 的内容?

欢迎回答上述问题 - 或者可能是不同的解决方案 - 非常受欢迎。

【问题讨论】:

    标签: authentication iframe wif claims-based-identity


    【解决方案1】:

    寻求解决方案 #2。如果 iframe 中的页面(从现在开始是依赖方 - RP)配置为使用 STS 作为身份验证提供程序,那么在首次加载时,它们会将浏览器(iframe)重定向到 STS。 STS 知道用户已经有一个单点登录会话(从最初登录到外联网),因此发出一个会话令牌,它作为 HTTP POST 交付给依赖方,被 WIF 截获并以以下形式交付给客户端cookie(默认情况下,但可以使用自定义会话令牌处理程序覆盖)。一些浏览器最初不允许在 iframe 中使用 cookie,但可以通过在来自依赖方的响应中发送 p3p 标头来允许。

    【讨论】:

    • 谢谢,安德烈亚斯。所以需要做的是创建 STS,并配置我的外网和 RP 站点以使用 STS 作为身份验证提供程序。我需要对 RP 站点做些什么来发送 p3p 标头,还是浏览器配置?
    • 我找到了描述该过程的链接:link。所以谢谢你的帮助,安德烈亚斯。
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多