Implementing SSO with Play 2.5.x

I need to implement SSO for my webapp (Play 2.5.x + Scala) so that my customers can use their own IdP for authentication but can access my webapp via SSO. I think the integration is going to be either SAML or OpenID based. Any suggestions on how should I proceed ?

I have implemented SAML and with Play before it works well. I used opensaml, and I think you just need to pay attention to make sure you don’t have any blocking calls.

Are there any libraries available with Play (I am using Scala) which perform SAML data interchange (including the parsing of XML) ?

I don’t know if there are anything specifically for Play, and Scala for that matter. I use Java. I have seen people talk about pac4j (and I think it has a Play module), but that is Java I think, and the last time I checked, it had some blocking calls because it was based on the servlet spec, things might have changed since, so maybe check that out. I used opensaml for the SAML processing part, and did the HTTP part myself.

Thanks Patrick. Would look at opensaml.

We use https://github.com/pac4j/play-pac4j with Play 2.5 + Scala for SAML SSO. It also supports OpenId and others.

It has been a huge time saver! I can’t recommend it enough.

You can also checkout https://groups.google.com/forum/m/#!forum/pac4j-users to see what types of questions and issues people have.

Thanks Rick. Looking at the pac4j lib. I am going to give it a try. Might have questions do will come back.