Bradley Beddoes
posted this on November 12, 2010 08:41
Adapted from the folk at Internet 2 via: https://spaces.internet2.edu/display/SHIB2/IdPTroubleshootingCommon...
This error is always because you did not not endorse Xerces and Xalan. If you think you did then you have made a mistake, perhaps because your application container isn't doing what you think it's doing (for example, Tomcat "helpfully" overrides the default location of the endorsed library directory).
This is caused by one of three issues:
This usually indicates a metadata problem, which results in the IdP assigning the incoming request to the category of an "anonymous" relying party. By default, anonymous requests are not handled, so indeed the SAML 2 profile is not configured in that case. To fix it, supply correct/valid metadata for the requesting SP to the IdP. If you do have metadata, it's broken or invalid in some way. Check the idp-process.log for warning messages indicating why it was unacceptable.
In rare cases, you could encounter this error if you change default settings such that particular SPs are not allowed to use that profile. Of course, in that case, the error may be perfectly normal.
This SAML authentication request has already been presented once and you're presenting it again. This is not allowed for security reasons. You should ask your SP to issue a fresh one, and avoid using the "back" button of some browsers.
This error is caused when the SAML authentication request received by the IdP was issued too long ago. The machine running the IdP or SP has a clock that is wrong, or you took a very long time to get from your SP to the IdP for some reason. You should always run ntpd and know that VM's will tend to have severe clock issues.
This error occurs when the servlet container loses the login context and the user's session across requests to the IdP through the authentication process.
If this error occurs constantly after every authentication, possible causes are:
If this error is encountered only occasionally by some users, possible causes are:
Upon receipt of an authentication request, an SSO handler will redirect the user to the appropriate authentication handler to login. The authentication handler must set the username and then send the user back to the identity provider's SSO handler. If the authentication handler sends the user back to the SSO handler but fails to set the username, this error will result. Investigate why the authentication handler that was used would have sent back no username, such as omitting protection for the RemoteUser location.
This rule requires that the peer system entity (e.g an SP from the perspective of the IdP) that is the issuer of the SAML protocol message be authenticated. This happens typically within another prior security policy rule or rules that process for example client TLS certificates or a digital signature over the message (either XML message signature or raw/blob binding-specific signature). Look for log messages indicating failures in these rules to determine the exact cause of the failure.
Common specifc reasons are:
If the IdP is configured to encrypt assertions or name ID's to a particular SP, the metadata for the SP (as held by the IdP) must contain the public key that will be used for key encryption. This key encryption key (usually a public key or certificate) must be represented in metadata within the EntityDescriptor/SPSSODescriptor/KeyDescriptor for the SP in question. The KeyDescriptor must either omit the 'use' attribute or have a value of 'use="encryption"'. The KeyInfo contained within the KeyDescriptor must contain either the SP's certificate in an X509Data/X509Certificate element, or must contain the SP's raw public key value in a KeyValue element.
This is caused when the IdP has enough information to process an incoming authentication request but can't determine a suitable SP endpoint to send the response back to.
If prior log messages indicate that null metadata is being used, the IdP does not have the SP's metadata and will attempt to construct an endpoint location. For the Shibboleth SSO profile, the endpoint will have a location of the ACS (the shire parameter on the original GET request) and the binding is one of the outgoing bindings supported by the IdP. For the SAML2 SSO profile, the ACS URL is used as the endpoint location. A requested binding the IdP supports will be used; if there is no match, then this defaults to the first binding listed in the IdP'sconfiguration. If all of that fails, this error results.
If the IdP does have the SP metadata, then the SP does not have a named ACS for any of the bindings configured in the IdP.
This indicates a syntactic or logical error in a config file. Often this is due a configuration element containing a reference to another element which is not present (perhaps commented out).
The bean name (e.g. shibboleth.RelyingPartyConfigurationManager) will often indicate the file in which the error is located. The relationships are defined in service.xml, currently as follows:
When using Microsoft Active Directory as a source of attribute data via the LDAP data connector, be aware of AD-specific configuration and deployment issues.
This indicates that the SP being connected to is attempting to make a SAML1 back-channel attribute request to a SAML2 endpoint. It is usually caused by improperly configured IdP endpoints at the federation. Some federations do not support SAML2 yet and trying to "fool" them by putting the 2.0 endpoints into their 1.0 fields will not work.