Q: How would you create a SSO? What would you do about authentication (separate app or same as sso) and user store?
Background info:
We have 40+ php apps, java apps and Ruby apps.
Currently, we have a custom SSO+authentication solution. It's an app written in php that is now used as SSO, while supporting email/username/phone-number + password as authentication. It works, but was built for a few apps only, not originally meant to be the SSO - solution. It doesn't have a usable view, every app create their own login/register forms and use the API. They share context and we'd like a more universal design.
Now we know want to support Oauth and openid solutions, as facebook connect, google and more, (or do we really?), in addition to existing authentications. We can expand existing php-solution, but we are considering alternatives.
If you were to do all this in Ruby, what would you do?
Some additional info:
- All users exist in SSO, today.
- The company does aquire other companies/systems at times, having their own users. Would you migrate or create some kind of mapper?
- Customers in a Microsoft CRM, but I consider this unrelated. Or do I?
- I've shallowly looked at RubyCAS and ClassyCAS, and don't know if they are suitable. Is CAS the way to go?
- Would you keep going with php? What would you use?
As you see, I have a lot of questions. What would you suggest?