我正在使用SAML为运行tomcat的Web服务器实现SSO身份验证流程。使用POST或Redirect绑定时,一切正常,但是从我读过的内容来看,我需要在REST API前面支持SAML身份验证,我还需要配置和使用ECP配置文件。
首先纠正我,如果我错了,但ECP流应该是这样的:
Accept: application/vnd.paos+xml
和PAOS: urn:liberty:paos:2003-08;urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp
)问题是所有这一切都有效,直到第6步。在这一步我有问题,响应信封的Body包含一个Destination属性,它指向 POST断言消费者服务 SP。此目标属性由keycloak设置,并且与我要发送响应的实际ECP服务不匹配。我们使用的SAML库是opensaml,它根据此Destination属性检查请求URI,如果它们不匹配则抛出异常org.opensaml.xml.security.SecurityException: SAML message intended destination endpoint did not match recipient endpoint
。
我理解为什么会抛出此异常,但无法理解如何使用SP的ECP / SOAP服务配置Keycloak。在Keycloak的管理控制台中,我只能为SSO POST / Redirect和SLO POST / Redirect配置URL,但没有关于ECP的配置。
我目前正在配置另一个IdP,但我真的想确保Keycloak也可以作为我们解决方案的受支持服务器。
答案 0 :(得分:-1)
难道你不能只阅读paos:请求responseConsumerURL并将idp响应发布到该网址?
至少,这就是我设法做到的。