在你指责我问的问题太基本而没有做任何家庭作业(job)之前,我想说,我已经读了很多关于这些话题的书,但我仍然感到困惑.
我的需求似乎很简单.在我的公司,我们有很多Ruby on Rails应用程序.我想构建一个所有应用程序都应该使用的SSO身份验证服务.
为了研究如何做到这一点,我读了CAS
、SAML
和OAuth2
.(我知道OAuth中的"Auth"代表授权,而不是身份验证,但我读了足够多的文章,说OAuth如何可以用于身份验证——this就是其中之一.)
有人能简单地告诉我这三个是什么吗?它们是替代品(竞争对手)吗?比较它们是对的吗?
有很多Ruby 似乎都在说非常相似的东西:
- https://github.com/rubycas/rubycas-server和https://github.com/rubycas/rubycas-client
- https://github.com/nbudin/devise_cas_authenticatable
- https://github.com/onelogin/ruby-saml
- 赌场和https://github.com/rbCAS/casino-activerecord_authenticator
- 我确信有数百种与OAuth相关的Ruby .
我只想要一个单独的Rails应用程序,它可以处理我的其他Rails应用程序的所有身份验证.
Note:我不想允许用户使用他们的Google/Facebook账户登录.我们的用户已经在我们的网站上拥有帐户.我希望他们能够使用该帐户登录一次,并且能够访问我们的所有应用程序,而无需再次登录.在任何应用中注销都应将其从所有应用中注销.
UPDATE
我遇到了以下两种OAuth解决方案:
- http://dev.mikamai.com/post/110722727899/oauth2-on-rails
- http://blog.yorkxin.org/posts/2013/11/05/oauth2-tutorial-grape-api-doorkeeper-en/
他们似乎在描述与我想要的非常相似的东西.但我还没有找到任何指南/博客帖子/教程来展示如何使用SAML/CAS实现这一点.
欢迎提出建议.
UPDATE 2
关于我们用例的更多细节.
我们没有任何现有的SAML体系 struct .主要是我们的用户(直接在我们的网站上注册)将访问我们的所有应用程序.将来,我们可能会有第三方(合作伙伴)公司调用我们的API.我们还可能有来自这些第三方(合作伙伴)公司(在其网站上注册)的用户访问我们的应用程序.