Single sign on 如何使用SAML ECP配置文件配置Key斗篷

Single sign on 如何使用SAML ECP配置文件配置Key斗篷,single-sign-on,saml,saml-2.0,keycloak,Single Sign On,Saml,Saml 2.0,Keycloak,我正在为运行tomcat的web服务器使用SAML实现SSO身份验证流。当使用POST或重定向绑定时,一切都正常,但是从我所读到的支持RESTAPI前面的SAML身份验证的内容来看,我还需要配置和使用ECP配置文件 如果我错了,请首先纠正我,但ECP流程应如下所示: 客户端访问SP REST API 客户端知道他需要进行身份验证,因此他设置了所需的ECP头(Accept:application/vnd.paos+xml和paos:urn:liberty:paos:2003-08;urn:oas

我正在为运行tomcat的web服务器使用SAML实现SSO身份验证流。当使用POST或重定向绑定时,一切都正常,但是从我所读到的支持RESTAPI前面的SAML身份验证的内容来看,我还需要配置和使用ECP配置文件

如果我错了,请首先纠正我,但ECP流程应如下所示:

  • 客户端访问SP REST API
    • 客户端知道他需要进行身份验证,因此他设置了所需的ECP头(
      Accept:application/vnd.paos+xml
      paos:urn:liberty:paos:2003-08;urn:oasis:names:tc:SAML:2.0:profiles:SSO:ECP
  • SP发现客户端未通过身份验证,并返回包含PAOS请求的SOAP信封
  • 客户负责通过其ECP消费者服务将此信息发送至相应的IdP
  • IdP向客户端挑战身份验证
  • IdP以另一个SOAP信封的形式返回响应,在其主体中包含saml响应
  • 客户端必须将此响应发送到SP的ECP/SOAP断言消费者服务
  • 问题是,在第6步之前,所有这些都是有效的。在这一步中,我遇到了一个问题,即响应信封的主体包含一个Destination属性,该属性指向SP的断言后使用者服务。该Destination属性由keydove设置,与我要向其发送响应的实际ECP服务不匹配。我们使用的SAML库是opensaml,它会根据此目标属性检查请求URI,如果它们不匹配,则抛出异常
    org.opensaml.xml.security.SecurityException:SAML消息预期目标端点与收件人端点不匹配

    我理解引发此异常的原因,但无法理解如何使用SP的ECP/SOAP服务配置Key斗篷。在Key斗篷的管理控制台中,我只能配置SSO POST/Redirect和SLO POST/Redirect的URL,但对ECP一无所知


    我目前正在配置另一个IdP,但我真的希望确保Key斗篷也可以成为我们解决方案的支持服务器。

    您难道不能阅读paos:Request ResponseSumerUrl并将IdP响应发布到该url吗

    至少,我是这样做的