* o haya <
ohay...@gmail.com> [2020-11-30 15:09]:
> The best we can tell, SimpleSamlPHP must be somehow constructing
> that AssertionConsumerServiceURL value in the SAMLRequest from
> pieces of information, but can someone explain exactly how it does
> that?
While people here may be able to explain how the implementation works
that may not be the best way forward.
> However, in our IdP logs, we are seeing an error:
>
> "The AssertionConsumerServiceURL found in the authentication request
> message cannot be validated.
> oracle.security.fed.event.EventException: The AssertionConsumerServiceURL
> found in the AuthnRequest message could not be validated: either the
> message has to be signed, or the URL needs to be one of the
> AssertionConsumerService Location defined in the metadata"
As an error cause "either the message has to be signed" is weird since
the IDP would have to know with certainty whether (a) itself imposes
such a requirement on the SP or (b) the SP claims it signs its
authentication requests via SAML 2.0 Metadata.
FWIW, unless you're doing something fancy in the authn request such as
setting forcedAuthn you shouldn't sign them and consequently the SP's
metadata shouldn't claim that those will be signed.
And whether the ACS URL from the authn request matches the SP's
metadata (or not) should be clear to IDP, too. And you can easily
determine that yourself: Just look at the SAML authn request in
transit using the SAMLtracer browser extension. Look at the ACS URL
the SP requested that the assertion should be returned to by the IDP.
Then look at the SAML 2.0 Metadata for the SP you gave to the IDP (or
the SP's ACS URL you provisioned into the IDP manually) and see
whether the ACS URL matches.
> The best we can tell, SimpleSamlPHP must be somehow constructing
> that AssertionConsumerServiceURL value in the SAMLRequest from
> pieces of information, but can someone explain exactly how it does
> that?
Look at the beginning of your config/config.php (base url).
Also check your SimpleSAMLphp admin UI, e.g. the tab about metadata.
-peter