用于IIS上多个站点的Shibboleth

用于IIS上多个站点的Shibboleth,iis,shibboleth,shibboleth-sp,Iis,Shibboleth,Shibboleth Sp,我正在尝试为一个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响应,再次重定向到Id

我正在尝试为一个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配置文件中的属性以某种方式共享会话,但对我来说没有任何效果。请帮忙。:)

在Shibboleth SP中使用ApplicationOverride会将辅助应用程序作为单独的服务调用,也就是说,您已经确定entityID是唯一的。对于二级API,我不会使用Shibboleth保护它,也就是说,如果您正在从已经通过身份验证的站点进行RESTful调用,为什么要使用Shibboleth SP(它是为确保针对IdP进行身份验证而构建的)来保护它呢。我认为您需要重新考虑您的身份验证工作流。。。一个更合理的想法:

(1) 使用SAML/Shibboleth从IdP获取site.com会话

(2) 基于SP会话生成应用程序会话(查看SAML流中的会话,实际上有几个,而不仅仅是一个SP会话)。更不用说Shibboleth是为身份验证而不是授权而构建的

(3) 根据您想要的任何API安全机制进行REST API调用。。。i、 e.您可以基于SAML断言数据构建JWT,并在API端点验证它的有效性,因为您知道证书


SAML web流并不是为API构建的,就像您在这里尝试使用它一样。。。您正试图摆脱的302,这是SAML工作流中必须解决的问题

在Shibboleth SP中使用ApplicationOverride会将辅助应用程序作为单独的服务调用,也就是说,您已经确定entityID是唯一的。对于二级API,我不会使用Shibboleth保护它,也就是说,如果您正在从已经通过身份验证的站点进行RESTful调用,为什么要使用Shibboleth SP(它是为确保针对IdP进行身份验证而构建的)来保护它呢。我认为您需要重新考虑您的身份验证工作流。。。一个更合理的想法:

(1) 使用SAML/Shibboleth从IdP获取site.com会话

(2) 基于SP会话生成应用程序会话(查看SAML流中的会话,实际上有几个,而不仅仅是一个SP会话)。更不用说Shibboleth是为身份验证而不是授权而构建的

(3) 根据您想要的任何API安全机制进行REST API调用。。。i、 e.您可以基于SAML断言数据构建JWT,并在API端点验证它的有效性,因为您知道证书


SAML web流并不是为API构建的,就像您在这里尝试使用它一样。。。您正试图摆脱的302,这是SAML工作流中必须解决的问题

非常感谢您的回复。现在我有另一个问题。COR和选项请求:(我不知道如何禁用选项请求的Shibboleth服务提供商。我在RequestMapper配置部分找不到任何内容。@Баааааааааааааааааааа1072NS请求。:(我不知道如何禁用选项请求的Shibboleth服务提供程序。我在RequestMapper配置部分中找不到任何内容。@Саааааааааааааааа