Follow


ERROR from IdP logs: Unable to locate satisfiable bearer SubjectConfirmation in
assertion.

2010-05-25 14:36:12 ERROR OpenSAML.SecurityPolicyRule.BearerConfirmation
[5]: bearer confirmation failed with recipient mismatch
2010-05-25 14:36:12 WARN Shibboleth.SSO.SAML2 [5]: detected a problem with
assertion: Unable to locate satisfiable bearer SubjectConfirmation in
assertion.


Details

CAUSE

This relates directly to SSL offloading via Layer 7 switches or similar.


An example subject confirmation:

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData Address="131.181.125.115" InResponseTo="_1253d4aadec1143fe542a6adfbd06206" NotOnOrAfter="2010-05-25T06:09:49.050Z" Recipient="https://mysqp.example.com.au/Shibboleth.sso/SAML2/Artifact"/>
</saml:SubjectConfirmation>


The recipient IdP is sending an entityID value of "https://mysqp.example.com.au". Due to offloading the Shibboleth daemon is generating a comparison string of "http://mysqp.example.com.au" (note the lack of S in http). This obviously fails the match and the assertion is discarded.


SOLUTION

Sometimes, the server runs behind a device that processes SSL, such as a reverse proxy, load balancer or SSL offload appliance. When this is the case, specify the https:// scheme and the port number to which the clients connect in the ServerName directive to make sure that the server generates the correct self-referential URLs. 


Update the Apache configuration element "ServerName" entry.
FROM: http://mysp.example.com.au
TO: https://mysp.example.com.au


Note: This solution may not translate to IIS since it may not support the virtualisation of web server configuration in the same way that Apache does. IIS appears not to have the equivalently configurable item as Apache's ServerName directive.


Links

http://httpd.apache.org/docs/2.2/mod/core.html#servername