I'm trying to understand the benefits of encrypting assertions in SAML requests, especially if those requests travel over SSL. As I have read, this isn't required. After authentication, if a service provider requests information from an IDP over SSL and provides its public key, what scenarios exist where something could go wrong if the IDP does not provide encrypted assertion data in its response?
Consider where an application uses edge termination of SSL traffic. With encryption, the data is still encrypted until it reaches the specific server that decrypts the assertion. Without encryption, the data is sent over the internal network between the SSL termination and the application server in clear text.
This is a pretty common setup, especially with larger organisations, or where services like Cloudflare are used for load balancing.
Most scenarios we see do not have the SAML assertion encrypted as the information contained in the assertion isn't particularly sensitive and TLS is sufficient. There are some scenarios where the user information and/or environment in which SSO is occurring is particularly sensitive and SAML assertions are encrypted as well as using TLS.