在同一个域上的多个站点上进行单点登录

时间:2012-11-10 13:56:21

标签: authentication cross-platform single-sign-on subdomain

我的组织希望能够创建多个站点,即具有不同的子域但在同一个域上,即foo.organization.com,bar.organization.com等。优选地,用户只需要登录到一个站点,然后登录到其他站点。可能有不同的服务器端平台用于实现这些子域站点(一些ASP.NET MVC,可能是Django,也许是Ruby等),因此这个解决方案应该最好是跨平台的。其中一个子域将托管主数据库的API,并且最好它应支持服务器到服务器身份验证以及从客户端代码使用API​​。

我们应该采取什么样的建议?

此致 丹尼尔

2 个答案:

答案 0 :(得分:0)

非常有趣!我想知道这与wamp或lamp server的功能不一样。我现在有44个网站在Localhost / each_sites_name / index.php名称空间下的一个Lamp服务器上运行。要做sub,你必须创建一个site_name并将其他一个级别放在它下面。

mainsite     SITE1     站点2     site3     site4等。

答案 1 :(得分:0)

您正在寻找的是单点登录。有几个很好的解决方案可以解决您所描述的需求。您可以研究SAML,CAS,OpenID等。

我个人推荐RubyCAS - 它是Ruby中Jasig's CAS protocol的实现。我发现设置起来比较容易,但两种方法都很好。

任何基于Web的应用程序(甚至非基于Web的应用程序)都可以将其身份验证委派给它。它与您对Google应用的身份验证方式类似。如果您在访问的特定站点上没有打开会话,则会被重定向到CAS服务器上的登录表单,如果您能够进行身份验证,则会返回一张票证。然后在后端验证票证以确保其有效。

有很多CAS客户可以使用各种平台。我个人可以保证rubycas clientphpCAS。看起来有some for Django,对于传统的apache服务应用,您可以使用mod_auth_cas,这基本上是CASsified HTTP basic auth。