两个 SP 之间的 SAML/SSO Ajax 请求

问题描述 投票:0回答:1

由于缺乏对 SSO/SAML 的了解,我的大脑快要爆炸了。我目前正在开展一个项目,我们正在使用 shibboleth 实施 SSO 身份提供商。

我们已启动并运行 SSO,并且能够通过一个应用程序进行身份验证并顺利导航到另一个应用程序。现在,下一个要求是让应用程序 A 返回一个页面,该页面可以毫无疑问地对应用程序 B 进行 Ajax 调用。

现在,我们已经将前端通道设置为工作(通过浏览器重定向),然后当我们对应用程序 A 进行 Ajax 调用时,我们会收到 301 响应,并且 SP/IdP 之间的重定向开始,而 Ajax 显然不会遵循这一点。

另一方面,如果我们从应用程序 A 向应用程序 A 发出 Ajax 调用,那么它会通过其本地会话 ID 发送,并且无需发送重定向来与 IdP 进行通信。

现在,如果我通过浏览器手动导航到应用程序 B 并允许发生所有重定向(因此也检索应用程序 B 的本地会话 cookie)。然后我仍然无法从应用程序 A 的响应中发出 Ajax 请求。原因显然是,当我们访问应用程序 A 域上的页面时,浏览器不会发送应用程序 B 的 cookie 信息。 所以我的问题如下:

    如果应用程序 A 和应用程序 B 是同级子域,我们能否以某种方式让浏览器传递所有必需的会话 cookie?
  • 我认为这种 Sp/IdP 通信可以通过反向通道进行,就像通过浏览器进行的重定向一样。我不明白这是怎么可能的:-)。如果我通过应用程序 A 登录,那么 IdP 会添加它自己的会话 cookie,因此当访问应用程序 B 后发生重定向时,它不必重新对我进行身份验证。但是,如果这不是通过重定向完成的,那么当我访问应用程序 B 时,它可以向 IdP 发送什么来对我进行身份验证,因为我的浏览器首先不会将 IdP 的 cookie 传递给应用程序 B。
  • 注:

如果这不太清楚,我很抱歉,我现在真的无法很好地解释这一点。也许我最好解释一下我需要实现什么目标。

点击应用程序并使用 SSO 登录
  • 我登录的应用程序是一个门户类型的应用程序,上面有一堆ajax小部件。
  • 每个小部件都会对其他应用程序进行 Ajax 调用,这些应用程序也受到 SSO 的保护
  • 有什么想法吗? 干杯,克里斯。

ajax single-sign-on shibboleth
1个回答
0
投票

现在,重定向怎么样?据我了解,您正在使用两个 SP(服务提供商),每个“子域”一个。如果是这样,则可以使用令牌对从网站 A 到网站 B 的请求(尽管有 CORS 和其他配置)进行身份验证(您可以添加此身份验证方法,以便如果存在令牌,则不需要其他身份验证 - 该请求通过了安全性层)。

现在,尽管有这个想法,关于重定向和保持会话,IdP/SP 交互提供了一个“身份”,但是一旦您的服务器收到它(在 SP 上),您就可以设置会话(例如可以通过cookie,...),验证权限,角色等。 那么,问题不在于 IdP/SP 交互,而在于会话验证。这里使用令牌可能是一个好主意,因为您想避免通过 JS 进行 cookie 管理(不安全)。

我希望这可以帮助您理解这个过程,以便您可以通过降低整体的复杂性来找到其他想法。

© www.soinside.com 2019 - 2024. All rights reserved.