我正在尝试为一个 IIS 实例上的两个站点配置 Shibboleth 服务提供程序:
- 带有静态 HTML 的前端 - 只是 SPA - 例如 site.com
- 带有 API 的后端 - 只是 REST - 例如 site-api.com
因此,当我打开第一个入口点时,我有 302 响应并重定向到 IdP,在输入凭据后 - 重定向到 site.com/Shibboleth.sso/SAML2/POST 并且一切正常。
我的 SPA 在浏览器中运行并向 site-api.com 发出 AJAX 请求。这是一个问题,因为我有 302 响应并再次重定向到 IdP。如果浏览器发出请求,我没有任何问题,因为会自动重定向到 IdP 浏览器处理。在 IdP 上通过会话 cookie 进行身份验证后,它再次重定向到 site-api.com/Shibboleth.sso/SAML2/POST。
如何在两个站点之间共享会话?如果用户已经在 site.com 上通过身份验证,是否可以在第一次请求到 site-api.com 后不进行重定向。
我已经用于第二个站点:
<ApplicationOverride id="site-api" entityID="https://site-api.com/shibboleth" />
另外,我为 site-api.com 注册了 ISAPI 和 RequestMap。从技术上讲,它适用于 site.com。
我想我可以通过使用 XML 配置文件中的属性以某种方式共享会话,但对我没有任何作用。请帮忙。:)