使用Iframe跨域,指向SSO服务器

时间:2010-01-19 19:25:13

标签: javascript iframe cross-domain single-sign-on

我有一个应用程序,我使用jquery在javasctip模式中显示一些内容。 它需要。用户登录某些流程;但我们永远不会为用户留下模态。

所以这就是我们目前的工作。

  1. 如果用户需要登录,则在用户流程中,我们会隐藏当前div并显示登录div
  2. 将隐藏的iframe与源链接保持为我们的SSO服务器。
  3. 用户提交表单后,我们会将隐藏的iframe提交给SSO服务器
  4. 如果用户登录,我们继续进行流程。
  5. 问题是用户登录时出错。我们需要从页面的隐藏iframe中获取错误代码;但是因为我们不控制iframe中的内容,而是由SSO服务器返回;我们不知道怎么读它,因为它是跨域的。

    任何见解?

3 个答案:

答案 0 :(得分:0)

只要没有从SSO方执行客户端脚本,您就不需要iframe。使用iframe实现安全性的目的是防止AJAX方法忽略单一来源策略并绕过SSL加密。答案是删除iframe。从服务器端请求SSO数据,并在构建页面时从服务器将其发送到客户端。

答案 1 :(得分:0)

除非使用jsonp协议,否则无法解决x-domain限制。

用户是否可以在页面上看到错误响应?你为什么把iframe隐藏起来?

您是否尝试使用iframe技术以静默方式将用户登录到另一个系统?

尽管这可能适用于大多数浏览器 - 某些浏览器不会在i-frames中传递Cookie - 但这种方法并不是一个广泛的受众解决方案。

如果我能澄清,请告诉我。

答案 2 :(得分:0)

使用JSONP回调您在网站中阻止的功能,然后在iframe中,您只需要调用javascript函数:“parent.callback()”。