错误消息:没有可用于发送SAML响应的对等端点

时间:2015-01-14 19:46:27

标签: shibboleth

我在我的Mac上安装了Shibboleth SP。我尝试与测试shib建立连接。但是,我登录后收到此错误。

 Error Message: No peer endpoint available to which to send SAML response 

这是我的Shibboleth2.xml

<Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
          checkAddress="false" handlerSSL="false" cookieProps="http">


    <SSO entityID="https://idp.testshib.org/idp/shibboleth"
         discoveryProtocol="SAMLDS" forceAuthn="true">
      SAML2 SAML1
    </SSO>


    <MetadataProvider type="XML" uri="http://www.testshib.org/metadata/testshib-providers.xml"
          backingFilePath="testshib-two-idp-metadata.xml" reloadInterval="180000">
    </MetadataProvider>

这是我的元数据

 <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://localhost/Shibboleth.sso/SAML2/POST" index="1"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://localhost/Shibboleth.sso/SAML2/POST-SimpleSign" index="2"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://localhost/Shibboleth.sso/SAML2/ECP" index="3"/>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="https://localhost/Shibboleth.sso/SAML/POST" index="4"/>

为什么我收到此错误?

2 个答案:

答案 0 :(得分:3)

此消息表示Testshib Identity Provider的配置与您尝试登录的Shibboleth服务提供商之间不匹配。我怀疑在元数据提供的断言使用者服务URL中使用名称“localhost”会导致问题。 IDP正在尝试将SAML响应发送到https://localhost/Shibboleth.sso/SAML2/POST,但当然没有断言消费者服务,因为“localhost”在这种情况下是IDP本身。

因此,我首先从Testshib中删除所有内容,更改SP的entityID以使其更加独特(使用您的IP地址而不是localhost)并将SP的更新元数据重新添加到TestShib。

答案 1 :(得分:3)

尝试请求,然后Testshib的idp记录在https://idp.testshib.org/cgi-bin/idplog.cgi?lines=300。对我来说,有一个错误信息:

05:15:03.350 - WARN [org.opensaml.saml2.binding.AuthnResponseEndpointSelector:206] -
Relying party 'my.entity.id' requested the response to be returned to endpoint with ACS
URL 'https://wrong-host/Shibboleth.sso/SAML2/POST'  and binding 'urn:oasis:names:tc:
SAML:2.0:bindings:HTTP-POST' however no endpoint, with that URL and using a supported
binding,  can be found in the relying party's metadata 

但我的元数据说

<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
Location="https://right-host/Shibboleth.sso/SAML2/POST" index="1"/>

如你所见,shibd要求被重定向到错误的地方。问题是shibd使用Apache的主机名。 (我假设您正在使用Apache。如果没有,则设置可能类似。)

解决方案是转到/etc/apache2/sites-enabled/default-ssl.conf并将ServerName设置为与您的元数据匹配的正确host:port。然后,打开/etc/apache2/apache2.conf并确保UseCanonicalNameOn

详细内容见docs,我建议您仔细阅读。