假设我有 3 个站点想要在其中使用 SSO,site1.com、site2.com 和 auth.com。始终需要 SSL。
根据此处描述 SiteMinder cookie 的方式,其中一个域将是关联的“主 cookie”域,而其他域将在身份验证失败的情况下重定向到该域。
目前的工作方式
为防止点击劫持,auth.com 的登录页面具有 NoFrames 脚本和为旧版浏览器实现的帧破坏器脚本。
在客户端登录到 site1.com 或 site2.com 后,AJAX 会启动并执行一些操作(轮询等)。在此期间,Javascript 可能会收到一条错误消息,指出会话无效。使用 AJAX 时会发生此错误。(如果它发生在浏览时,会有一个重定向,这整个问题不适用)
此时我可以刷新页面并重定向,或者告诉用户在 auth.com 上再次登录,但随后我丢失了内存中的应用程序状态。
面向最终用户的新/无缝方法
作为一种解决方法,我正在考虑使用 Javascript 创建一个 iFrame 来auth.com/RefreshOnly
(iFrames OK)发布我的会话数据。 Auth.com/RefreshOnly
将看到其域的 cookie,如果它选择,重定向到我的 origin site1.com
,指示它更新我当前的 cookie.... 都在一个隐藏的 iFrame 中。
问题
在 IDP/身份验证提供商中是否允许 iFrame 的这种有限使用?(不是 Siteminder 独有的)