使用Windows Identity Foundation在iframe中验证Extranet网站
情景:许多网站必须通过公司外联网上的iframe显示。 Extranet使用SSL和基于Active Directory的Windows身份验证。 每个iframe'd网站都需要经过身份验证的用户,但不要求用户手动登录该用户。 每个网站的认证机制尚未确定。
问题:我需要了解如何在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内部完成 - 我记得曾经阅读过关于cookie不被允许进入iframe的内容吗?
对上述问题的回答 - 也许是一种不同的解决方案 - 是最受欢迎的。
去解决方案#2。 如果iframe中的页面(从现在起依赖方-RP)被配置为使用STS作为认证提供者,那么当第一次加载时,他们将把浏览器(iframe)重定向到STS。 STS知道用户已经有了一个单一登录会话(最初登录到外部网),因此发出一个会话令牌,它将它作为HTTP POST发送给依赖方,WIF截获并以表单形式发送给客户端的Cookie(默认情况下,但可以使用自定义会话令牌处理程序重写)。 有些浏览器最初并不允许在iframe内部使用cookie,而是通过在依赖方的响应中发送p3p标头,这是允许的。
链接地址: http://www.djcxy.com/p/90001.html上一篇: Authenticating extranet web site in iframe using Windows Identity Foundation
下一篇: Obtaining attributes of elements within editable iframe ondblclick