在PHP中实现三个网站的单一登录?

时间:2011-07-07 16:09:09

标签: php mysql openid single-sign-on

我有三个相关网站的网络。

 - site1.domain.com
 - site2.domain.com
 - site3.domain.com

目前,每个子域在三个独立的数据库中有大约100个帐户。他们分别为每个域登录。我想创建site0.domain.com,让他们对一个数据库进行身份验证,然后在用户访问时自动将用户登录到每个站点。

我不太清楚如何做到这一点。我听说像开放ID和联盟以及单点登录这样的条款,但我以前从未想要整合这样的网站。

首先,技术上如何实现这一点(我正在使用PHP / MySQL),其次,在不中断服务的情况下迁移现有用户帐户以使用单点登录的好计划是什么?

我猜测用户可以通过site0上的表单登录,它将针对数据库授权用户并为其会话创建数据库行,并附带一个令牌。令牌在会话变量cookie中设置。用户访问site1,site2或site3,如果在GET请求中设置了标记变量,它将连接到同一个数据库site0使用,搜索标记,并返回正确的用户行。这几乎是如何工作的?任何更多的技术建议都会很棒......

就迁移而言,我想我可以让用户创建他们的site0登录或“连接”他们的用户帐户到site0登录,如果他们每次登录其中一个网站时还没有。 30天后,所有站点都停止接受正常登录,并强制用户创建site0登录。当他们创建site0登录时,它会询问他们的site1,site2或site3用户名/密码,以便获得正确的用户信息。

1 个答案:

答案 0 :(得分:0)

看看像SimpleSAMLphp这样的东西。这是一个很棒的图书馆来做这种事情。