SAML Response + SAML Assertion are both signed individually while sending back the response.

But the SAML Response contains the SAML Assertion. The latter is actually a subset of the former. Then what is the use of signing both separately? In other words, if we sign the hash of the SAML response then it automatically validates the SAML assertion as well. There should be no reason to sign the SAML assertion as well separately.

Why are both signed while sending the SAML Response?

1 Answer 1


The SAML response and assertion can have different security properties. The assertion is also not the only part of the response - it may contain multiple different elements with varying purposes and contents.

The SAML response may or may not be signed. The SAML assertion within that response may be unsigned or signed, and may also be unencrypted or encrypted. In the case where both are signed, the algorithms and certificates used for signing may differ between the assertion and the enclosing response. Other elements of the response may also be signed and/or encrypted. An example of such an element is md:EntitiesDescriptor.

In some cases a service provider may be comprised of separate service components, such as one responsible for generating the assertion and another responsible for applying additional metadata or context to the SAML response. In such a case, the assertion and response would potentially be signed by separate entities with different certificates.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .