场景:一些网站必须通过我公司外联网上的 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 的内容?
对上述问题的回答 - 或者可能是不同的解决方案 - 是最受欢迎的。