Thursday, 28 February 2008
SAML Bindings Best Practices
The majority of SAML deployments we see are standardizing on the front-channel HTTP POST and HTTP Redirect bindings for SSO and SLO. These bindings are proving to be much simpler to implement than the bindings that require back channel communications.
Why is this?
The use of SAML bindings that require back channel communication (e.g. SAML Artifact and SAML SOAP bindings) are inherently more complex to deploy. We have masked a significant amount of this complexity within PingFederate but there are still a number of deployment considerations that always end up being tricky. Most obvious is the need to establish a secure direct communication path between the IdP and SP federation servers. This likely involves negotiating some transport level authentication mechanisms (above and beyond SAML message signatures), opening the appropriate firewall ports to allow requests/responses between servers, implementing proxy servers or web service gateways, again to allow connectivity through the DMZ, etc. This additional complexity comes without any real material advantages that make the extra complexity worthwhile.
For example, the Artifact Binding is no more or less secure than the POST Binding as it relates to message replay attacks. The main reason for the existence of the Artifact Binding was to actually have an option in SAML 1.x SSO where SP’s did not have to validate XML Digital Signatures over each SAML Assertion. The Artifact Binding allowed the signature to be optional, and instead allowed the deployer to leverage transport level security. It was felt that this offered a simpler implementation option for SP’s. The SOAP Binding was actually introduced as a performance optimization for SLO, as opposed to having an IdP redirect the browser to every SP to indicate a Logout had occurred. To leverage SOAP SLO each SP is required to track local user session state in some backend database so that the user session can be cancelled (logged out) without the browser being present. Common practice among SP’s seems to be to maintain user session state in a browser cookie which requires the browser to be present. As such SOAP SLO has seen very limited use.
New SAML deployments should take advantage of lessons learned from past experience and avoid the back channel bindings. It is much more likely that your federation project will run more smoothly if you do. This is also why we chose to target the front-channel bindings for Auto-Connect.


