Hello,<div>I&#39;m troubleshooting an issue between shibboleth-sp and ADFS (2 ADFS servers behind the load balancer of <a href="http://login.foo.com">login.foo.com</a>) as the IdP where after replacing an apache front end SSL for a web site, the SSO is no longer working.</div>
<div><br></div><div>Users sign into the <a href="http://www.foo.com">www.foo.com</a>, which is all windows, but when they attempt to go to <a href="http://cms.foo.com">cms.foo.com</a> which is the apache/shibboleth piece, the following error message is thrown in shibd.log when I enable debugging:</div>
<div><br></div><div><div>2012-09-28 12:47:12 INFO Shibboleth.Listener [1]: detected socket closure, shutting down worker thread</div><div>2012-09-28 12:47:18 DEBUG Shibboleth.Listener [10]: dispatching message (default::getHeaders::Application)</div>
<div>2012-09-28 12:47:18 DEBUG Shibboleth.Listener [11]: dispatching message (default/Login::run::ADFSSI)</div><div>2012-09-28 12:47:18 INFO Shibboleth.SessionInitiator.ADFS [11]: unable to locate ADFS-aware identity provider role for provider (<a href="http://login.foo.com/adfs/services/trust">http://login.foo.com/adfs/services/trust</a>)</div>
<div>2012-09-28 12:47:18 DEBUG Shibboleth.Listener [11]: dispatching message (default/Login::run::SAML2SI)</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageEncoder.SAML2Redirect [11]: validating input</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageEncoder.SAML2Redirect [11]: marshalling, deflating, base64-encoding the message</div>
<div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageEncoder.SAML2Redirect [11]: marshalled message:</div><div>&lt;samlp:AuthnRequest xmlns:samlp=&quot;urn:oasis:names:tc:SAML:2.0:protocol&quot; AssertionConsumerServiceURL=&quot;<a href="https://cms.foo.com/Shibboleth.sso/SAML2/POST">https://cms.foo.com/Shibboleth.sso/SAML2/POST</a>&quot; Destination=&quot;<a href="https://login.foo.com/adfs/ls/">https://login.foo.com/adfs/ls/</a>&quot; ID=&quot;_c3c745747ddb5ecda84dccfa78425caf&quot; IssueInstant=&quot;2012-09-28T16:47:18Z&quot; ProtocolBinding=&quot;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST&quot; Version=&quot;2.0&quot;&gt;&lt;saml:Issuer xmlns:saml=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot;&gt;<a href="https://cms.foo.com/shibboleth">https://cms.foo.com/shibboleth</a>&lt;/saml:Issuer&gt;&lt;samlp:NameIDPolicy AllowCreate=&quot;1&quot;/&gt;&lt;/samlp:AuthnRequest&gt;</div>
<div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageEncoder.SAML2Redirect [11]: message encoded, sending redirect to client</div><div>2012-09-28 12:47:18 DEBUG Shibboleth.Listener [12]: dispatching message (default/SAML2/POST)</div>
<div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageDecoder.SAML2POST [12]: validating input</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageDecoder.SAML2POST [12]: decoded SAML message:</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageDecoder.SAML2 [12]: extracting issuer from SAML 2.0 protocol message</div>
<div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageDecoder.SAML2 [12]: message from (<a href="http://login.foo.com/adfs/services/trust">http://login.foo.com/adfs/services/trust</a>)</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.MessageDecoder.SAML2 [12]: searching metadata for message issuer...</div>
<div>2012-09-28 12:47:18 DEBUG OpenSAML.SecurityPolicyRule.MessageFlow [12]: evaluating message flow policy (replay checking on, expiration 60)</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.StorageService [12]: inserted record (_36a781a5-70cf-451e-b238-de9fc8cb4b57) in context (MessageFlow) with expiration (1348851078)</div>
<div>2012-09-28 12:47:18 DEBUG Shibboleth.SSO.SAML2 [12]: processing message against SAML 2.0 SSO profile</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.CredentialCriteria [12]: key algorithm didn&#39;t match (&#39;AES&#39; != &#39;RSA&#39;)</div>
<div>2012-09-28 12:47:18 DEBUG Shibboleth.SSO.SAML2 [12]: decrypted Assertion: &lt;Assertion xmlns=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot; ID=&quot;_fc52a2da-c77e-4d44-bbb0-08501bcabad1&quot; IssueInstant=&quot;2012-09-28T16:47:18.430Z&quot; Version=&quot;2.0&quot;&gt;&lt;Issuer&gt;<a href="http://login.foo.com/adfs/services/trust">http://login.foo.com/adfs/services/trust</a>&lt;/Issuer&gt;&lt;ds:Signature xmlns:ds=&quot;<a href="http://www.w3.org/2000/09/xmldsig#">http://www.w3.org/2000/09/xmldsig#</a>&quot;&gt;&lt;ds:SignedInfo&gt;&lt;ds:CanonicalizationMethod Algorithm=&quot;<a href="http://www.w3.org/2001/10/xml-exc-c14n#">http://www.w3.org/2001/10/xml-exc-c14n#</a>&quot;/&gt;&lt;ds:SignatureMethod Algorithm=&quot;<a href="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256">http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</a>&quot;/&gt;&lt;ds:Reference URI=&quot;#_fc52a2da-c77e-4d44-bbb0-08501bcabad1&quot;&gt;&lt;ds:Transforms&gt;&lt;ds:Transform Algorithm=&quot;<a href="http://www.w3.org/2000/09/xmldsig#enveloped-signature">http://www.w3.org/2000/09/xmldsig#enveloped-signature</a>&quot;/&gt;&lt;ds:Transform Algorithm=&quot;<a href="http://www.w3.org/2001/10/xml-exc-c14n#">http://www.w3.org/2001/10/xml-exc-c14n#</a>&quot;/&gt;&lt;/ds:Transforms&gt;&lt;ds:DigestMethod Algorithm=&quot;<a href="http://www.w3.org/2001/04/xmlenc#sha256">http://www.w3.org/2001/04/xmlenc#sha256</a>&quot;/&gt;&lt;ds:DigestValue&gt;n2uxLhU7xqQx5PieceNiLDICukmJMZWVXAQbjFtJHhk=&lt;/ds:DigestValue&gt;&lt;/ds:Reference&gt;&lt;/ds:SignedInfo&gt;&lt;ds:SignatureValue&gt;C/L0fq5hEuBPMs9hO/+vqZ17yYGDfyg+g6j2iEjdW7vWi22JfB+N/APZzHRZnZm8Lzv1KQb5NoG/wAiWJ2Yof5YTqlLPQ9a6zsWvBDjb17Uj6PSNYTvl/wVomjiwKjokM65IH0sZWZia0+2c6PU/2LGzANzZsb1PfxCFzbzMFOp25j7hNe4H/L7mWKgA8mFJS/OgPiorp4In++4Q0NB4H8Md3xZQwgvmbjC3o+SFVh3YJxzGpNt3q5bTmWGePJDffz7bSF15FytePBQ21OhjKV8S9DN871qVnLSSnq5qY9O8+gthMRVthpo10t4rQTvh58y+z9z88s711Zb1sMOCAQ==&lt;/ds:SignatureValue&gt;&lt;KeyInfo xmlns=&quot;<a href="http://www.w3.org/2000/09/xmldsig#">http://www.w3.org/2000/09/xmldsig#</a>&quot;&gt;&lt;ds:X509Data&gt;&lt;ds:X509Certificate&gt;Y2QoCpx+ngyA4ecM0PAWAI1pqJc0l6bas4e3VqVjZmHSvCQ6uICuzpPPlAlcb/AbGLEb3YeH7/3fPXKtCSKJ3W70wQUs8aalyiA2SVzz5Ht0Il9XnSHc/qC1r/wa8Vc0&lt;/ds:X509Certificate&gt;&lt;/ds:X509Data&gt;&lt;/KeyInfo&gt;&lt;/ds:Signature&gt;&lt;Subject&gt;&lt;NameID&gt;4aHHPvWYKE+/ZTRUso2+eA==&lt;/NameID&gt;&lt;SubjectConfirmation Method=&quot;urn:oasis:names:tc:SAML:2.0:cm:bearer&quot;&gt;&lt;SubjectConfirmationData InResponseTo=&quot;_c3c745747ddb5ecda84dccfa78425caf&quot; NotOnOrAfter=&quot;2012-09-28T16:52:18.430Z&quot; Recipient=&quot;<a href="https://cms.foo.com/Shibboleth.sso/SAML2/POST">https://cms.foo.com/Shibboleth.sso/SAML2/POST</a>&quot;/&gt;&lt;/SubjectConfirmation&gt;&lt;/Subject&gt;&lt;Conditions NotBefore=&quot;2012-09-28T16:47:18.415Z&quot; NotOnOrAfter=&quot;2012-09-28T17:47:18.415Z&quot;&gt;&lt;AudienceRestriction&gt;&lt;Audience&gt;<a href="https://cms.foo.com/shibboleth">https://cms.foo.com/shibboleth</a>&lt;/Audience&gt;&lt;/AudienceRestriction&gt;&lt;/Conditions&gt;&lt;AttributeStatement&gt;&lt;Attribute Name=&quot;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/title">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/title</a>&quot;&gt;&lt;AttributeValue&gt;<a href="mailto:ericalj@foo.com">ericalj@foo.com</a>&lt;/AttributeValue&gt;&lt;/Attribute&gt;&lt;Attribute Name=&quot;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn</a>&quot;&gt;&lt;AttributeValue&gt;<a href="mailto:ericalj@foo.com">ericalj@foo.com</a>&lt;/AttributeValue&gt;&lt;/Attribute&gt;&lt;/AttributeStatement&gt;&lt;AuthnStatement AuthnInstant=&quot;2012-09-28T16:15:43.349Z&quot; SessionIndex=&quot;_fc52a2da-c77e-4d44-bbb0-08501bcabad1&quot;&gt;&lt;AuthnContext&gt;&lt;AuthnContextClassRef&gt;urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport&lt;/AuthnContextClassRef&gt;&lt;/AuthnContext&gt;&lt;/AuthnStatement&gt;&lt;/Assertion&gt;</div>
<div>2012-09-28 12:47:18 DEBUG Shibboleth.SSO.SAML2 [12]: extracting issuer from SAML 2.0 assertion</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.SecurityPolicyRule.MessageFlow [12]: evaluating message flow policy (replay checking on, expiration 60)</div>
<div>2012-09-28 12:47:18 DEBUG XMLTooling.StorageService [12]: inserted record (_fc52a2da-c77e-4d44-bbb0-08501bcabad1) in context (MessageFlow) with expiration (1348851078)</div><div>2012-09-28 12:47:18 DEBUG OpenSAML.SecurityPolicyRule.XMLSigning [12]: validating signature profile</div>
<div>2012-09-28 12:47:18 DEBUG XMLTooling.CredentialCriteria [12]: keys didn&#39;t match</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.ExplicitKey [12]: unable to validate signature, no credentials available from peer</div>
<div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: validating signature using certificate from within the signature</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: signature verified with key inside signature, attempting certificate validation...</div>
<div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: checking that the certificate name is acceptable</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: certificate subject: CN=<a href="http://login.foo.com">login.foo.com</a>,OU=OIT,O=US Dept of G,L=Washington,ST=DC,DC=va,DC=gov</div>
<div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: unable to match DN, trying TLS subjectAltName match</div><div>2012-09-28 12:47:18 DEBUG XMLTooling.TrustEngine.PKIX [12]: unable to match subjectAltName, trying TLS CN match</div>
<div>2012-09-28 12:47:18 ERROR XMLTooling.TrustEngine.PKIX [12]: certificate name was not acceptable</div><div>2012-09-28 12:47:18 ERROR OpenSAML.SecurityPolicyRule.XMLSigning [12]: unable to verify message signature with supplied trust engine</div>
<div>2012-09-28 12:47:18 WARN Shibboleth.SSO.SAML2 [12]: detected a problem with assertion: Message was signed, but signature could not be verified.</div></div><div><br></div><div>I&#39;m unfortunately learning SSO as I go, so, I&#39;m sorry if this seems like an obvious/simple issue. I am leaning towards an issue with the metadata, but I&#39;m not certain how to check that further or resolve it if it is.</div>
<div><br></div><div>I&#39;ve verified the sp-cert referenced in shibboleth2.xml is still valid and hasn&#39;t been touched. I&#39;ve verified on the ADFS portion that the relying data matches the sp-cert as well.</div><div>
<br></div><div>Thanks,</div><div>Erica</div><div><br></div><div><br></div><div><br></div>