场景:在我的公司外联网上,必须通过iframe显示一些网站。外联网使用SSL和基于Active Directory的Windows身份验证。每个iframe的网站都需要一个经过认证的用户,但这是一个要求,用户不应该被要求手动登录。每个网站的认证机制尚未确定。
问题:我需要找出如何在iframes中实现自动登录。我可以要求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的文章。
对以上问题的回答--或者可能是不同的解决方案--是最受欢迎的。
发布于 2013-01-25 21:10:14
2.如果iframe中的页面(从现在起依赖方RP)被配置为使用STS作为身份验证提供者,那么在第一次加载时,它们会将浏览器( iframe)重定向到STS。STS知道用户allready具有单个signon会话(从最初登录到外联网),并且因此发布会话令牌,该会话令牌作为HTTP POST传递给依赖方,该HTTP POST被WIF拦截并以cookie的形式传递给客户端(默认情况下,这可以使用自定义会话令牌处理程序来覆盖)。一些浏览器最初不允许在iframes中使用p3p,但是通过在来自依赖方的响应中发送cookie报头,可以允许这样做。
https://stackoverflow.com/questions/14504039
复制相似问题