Unable to locate a SAML 2.0 ACS endpoint to use for response

Mr. Christopher Bland chris at fdu.edu
Thu Jun 15 21:49:56 EDT 2017


Hi All,

I am troubleshooting a cluster of SPs behind a load balancer and keep getting "Unable to locate a SAML 2.0 ACS endpoint to use for response”  I followed the instructions for NativeSPODBCStorageService because persistence on the load balancer will only keep you talking to the same server for 6 minutes which is good enough for the authentication process.  After that you could hit any server in the cluster during your session.  My config looks like this

<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config"
    xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    clockSkew="180">

    <!-- The OutOfProcess section contains properties affecting the shibd daemon. -->
    <OutOfProcess logger="shibd.logger">
        <Extensions>
            <Library path="odbc-store.so" fatal="true"/>
        </Extensions>
    </OutOfProcess>

    <!-- This set of components stores sessions and other persistent data in an ODBC database. -->
    <StorageService type="ODBC" id="db" cleanupInterval="900">
        <ConnectionString><![CDATA[
            DRIVER=MySQL;SERVER=db-server;USER=shibd_usr;PASSWORD=password;DATABASE=shibboleth
        ]]>
        </ConnectionString>
    </StorageService>
    <SessionCache type="StorageService" StorageService="db" cacheTimeout="3600" inprocTimeout="900" cleanupInterval="900" />
    <ReplayCache StorageService="db" />
    <ArtifactMap StorageService="db" artifactTTL="180" />

    <ApplicationDefaults entityID="https://servername/shibboleth-sp"
                         signing="true" encryption="true"
                         REMOTE_USER="userPrincipalName">

        <Sessions lifetime="28800" timeout="3600" checkAddress="false" handlerSSL="true" cookieProps="https">

            <SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Login"
                    relayState="ss:db" entityID="https://identity-provider/idp/shibboleth">
                <SessionInitiator type="SAML2" template="bindingTemplate.html"/>
            </SessionInitiator>

            <LogoutInitiator type="Chaining" Location="/Logout" relayState="ss:db">
                <LogoutInitiator type="SAML2" template="bindingTemplate.html"/>
                <LogoutInitiator type="Local"/>
            </LogoutInitiator>

            <!-- Extension service that generates "approximate" metadata based on SP configuration. -->
            <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>

            <!-- Status reporting service. -->
            <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>

            <!-- Session diagnostic service. -->
            <Handler type="Session" Location="/Session" showAttributeValues="false"/>

            <!-- JSON feed of discovery information. -->
            <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
        </Sessions>

        <!--
        Allows overriding of error template information/filenames. You can
        also add attributes with values that can be plugged into the templates.
        -->
        <Errors supportContact="help at fdu.edu"
            helpLocation="/about.html"
            logoLocation="/shibboleth-sp/logo.jpg"
            styleSheet="/shibboleth-sp/main.css"/>

        <MetadataProvider type="Chaining">
            <MetadataProvider type="XML" url="https://identity-provider/idp/profile/Metadata/SAML" backingFilePath="idp-metadata.xml"/>
            <MetadataProvider type="XML" url="https://dev_identity-provider/idp/profile/Metadata/SAML" backingFilePath="idpdev-metadata.xml"/>
        </MetadataProvider>

        <!-- Map to extract attributes from SAML assertions. -->
        <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>

        <!-- Use a SAML query if no attributes are supplied during SSO. -->
        <AttributeResolver type="Query" subjectMatch="true"/>

        <!-- Default filtering policy for recognized attributes, lets other data pass. -->
        <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>

        <!-- Simple file-based resolver for using a single keypair. -->
        <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/>

    </ApplicationDefaults>

    <!-- Policies that determine how to process and authenticate runtime messages. -->
    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>

    <!-- Low-level configuration about protocols and bindings available for use. -->
    <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>

</SPConfig>

I believe I made the correct changes based on documentation and example-shibboleth2.xml file but it doesn’t work.  

Lastly has anyone ever configure the ODBC driver to connect to a database cluster or do an encrypted connection?

-Chris



More information about the users mailing list