0

几天来,我一直在努力寻找解决问题的方法。

搜索给了我很多选择,但没有一个我可以适应我的场景。

我有一个 Web 应用程序 (C# ASP.NET),它必须将一些数据发布到另一个域中的另一个应用程序,作为 SSO。(使用 SSL 重定向到另一个域的 HTTP POST)

另一个域上的应用程序期待一个包含一些 JSON 格式纯文本数据的帖子,然后将用户重定向到另一个页面。

我不能使用表单提交,因为它将表单本身发送到应用程序,而不仅仅是我的数据,所以它无法读取我发送的数据。

XMLHttpRequest 确实有效,但是作为 ajax 调用,它不会重定向用户,并且我无法从响应中取回 Location 标头。

我无法控制其他应用程序,并且我只能使用我们的库,所以 JQuery 不是一个选项。

有谁知道我怎样才能做到这一点?服务器端或客户端。

4

1 回答 1

1

大多数基于 POST 的跨域 SSO 场景的工作方式如下:

  • 新的未经身份验证的浏览器转到服务提供商
  • 服务提供商重定向到带有特定查询字符串的 SSO url(通常包含由服务提供商签名的小请求,以将该服务提供商标识到 SSO 门)
  • 浏览器对 SSO 网关 url 执行 GET
  • SSO 网关响应一些交互式登录 UI
  • 浏览器获取用户名/密码输入并将其发布到 SSO 网关
  • SSO 网关验证并响应一个带有小 Javascript 的 HTML 页面,其中包含身份验证响应数据
  • Javascript 反过来指示浏览器将身份验证响应数据 POST 回服务提供商 URL

在此处阅读:http ://en.wikipedia.org/wiki/SAML_2.0#HTTP_POST_Binding 您还将从阅读 SAML2、OAuth 和 WS-Federation 规范中受益匪浅。

于 2013-11-22T18:19:52.150 回答