如何创建跨多个应用程序使用的全局帐户系统?

问题描述:

我正在开发几个应用程序,这将需要跨所有应用程序的全球账户系统,我不确定要做这件事的最佳方式是什么。如何创建跨多个应用程序使用的全局帐户系统?

最明显的选择是让每个应用程序连接到1个数据库,但这需要在所有应用程序中重复MVC登录代码,这会使系统更新有点痛苦。

也许将登录系统分成自己的应用程序,并让每个应用程序通过API进行身份验证?

任何想法表示赞赏。 谢谢!

即使您将登录名拆分为单独的应用程序,仍然会有重复的登录代码,因为使用api的表单和控制器需要重复。除非你使用公共库来封装通用功能。那么你需要更多的功能,花里胡哨。如果你在这条路上走的足够长,你只需重新实现你自己的方形轮:)

相反,你可以使用人已经建立的东西。

到目前为止,最简单的方法是完全删除所有这些东西,只支持openid。 就像*。捆绑了一些聪明的openid-from-provider-and-username代(再次就像*),这几乎可以容纳任何人,认为这需要多一点工作(但不是太多,生成规则应该非常简单)。

如果你真的需要标准的用户名/密码登录表单,只想集中的用户数据库,你仍然可以使用OpenID的幕后(见ruby-openid为客户端和服务器部分实现),或只使用一个简单的CAS解决方案(如ruby-cas

最好的办法是使用经过验证的真实身份验证系统,例如LDAP。您可以使用Authlogic作为基本身份验证系统,并使用Authlogic LDAP Addon插件。

如果你想要一个Authlogic如何工作的例子,你可以看到一个here

rubycas-server是另一种选项,它允许您使用单一登录页面来验证跨多个应用程序的用户身份。