![]() |
The SaaS provider you just selected claims SAML compatibility? That’s awesome for you! This will enable you and your users to use this new service in a much more secure and user-friendly way. Imagine the pain if there was one more user ID and password to manage. But you know what? “SAML compatible” means very little these days. I’m not saying that the SaaS providers are not “SAML compatible.” I’m saying that “compatible” is sometimes used in the most loose way possible. I’m totally fine with that and I can explain why. SAML 2.0 is an extensive standard with lots of features. Some are essential, some are nice to have and others are rather obscure. And, by obscure, I don’t mean the good kind of obscure I wrote about in my last blog post. It turns out those assumptions weren’t totally accurate – which comes as a surprise to exactly no one I guess. Let me give you an example of an essential functionality of SAML: Web SSO. Less commonly implemented is the part of SAML 2.0 that talks about the setup of the relationship between an IDP and a SP. A “nice to have,” in many cases, are authentication context classes. These are fields in a SAML assertion that communicate to the SP how a user got authenticated at the IDP. That is useful if the SP actually cares about that fact. The SP could for example request a certain authentication class (e.g. TimeSyncToken) from the IDP. Most times however it is the IDP that would control what authentication method to use when federation to a particular SP and not let the SP make that decision. In that case the authentication context classes don’t really matter much at all. I have two obscure features of SAML as examples: Persistent NameIDs and NameID management.
There is much more to SAML e.g. attribute statements, name ID formats, signatures, encryption etc. Take all this and you get a feeling that maybe SAML isn’t trivial to implement after all. That is way easier than even the “SP lite” operational mode I mentioned earlier. OrangeHRM is an example of this approach. Does that mean their SAML implementation is bad? Far from it. It is not complete – it only does SSO using the POST binding but would you rather have that obscure persistent NameID feature implemented or whatever useful HR function OrangeHRM should provide in the next release? “How hard can it be to implement SAML? It’s just XML!” – that’s what I heard a few weeks ago from a customer. I was politely pointing out that SAML is indeed XML based, but that doesn’t automatically make it hard or easy to implement. It’s the extent to which SAML should be supported that makes it easy or hard. If I have to choose between a severely restricted but secure SAML implementation and having no SAML support at all… I would choose the first option every single time. The post Your SaaS Cloud Provider Does An Awful Job At Implementing SAML And That’s Totally OK appeared first on Speaking of Security - The RSA Blog. |
