我正在尝试弄清楚如何跨服务器同步 authlogic 持久性 token 。
我有 4 台服务器,并且在所有 4 台服务器上都有许多应用程序,身份验证适用于一台服务器上的所有应用程序。如果我将持久性 token 从一台服务器复制到另一台服务器,我什至可以让它们在不同的服务器上工作。
我能想到的唯一问题是用户可能登录到一台服务器而不是另一台服务器,但我仍然希望他们能够同步,以防他们确实转到另一台服务器。例如:
Joe 登录服务器 1
Joe 也登录到服务器 2
Jane 只登录服务器 1
Fred 只登录服务器 2
我需要从每个服务器进行双向同步。我不在乎他们获得哪个持久性 token ,只要它们都相同即可。
在重要的情况下,这还会使用 LDAP 进行身份验证。
我几乎愿意接受任何建议,包括与非 Rails 相关的内容。
编辑
要更新此内容,我无法删除 LDAP 身份验证。我真的不想取代authlogic。我正在考虑使用 rake 任务或 shell 脚本之类的东西来处理同步。
我完全可以提出自己的想法,只是想看看是否有人知道最好的方法。
感谢大家的帮助。
最佳答案
您可能确实在寻找中央身份验证服务 (CAS)——能够启用单点登录 (SSO) 的服务。
这使您能够登录到不同的服务。它会像这样工作
- 用户请求 http://server1
- server1 检查用户是否通过本地存储的身份验证。如果没有:
- server1 将用户重定向到类似 http://casserver?return=server1 的内容
- casserver 实际上获取用户名/密码或凭据,对它们进行身份验证,并且:
- casserver 重定向至 http://server1
然后:
- 用户请求 http://server2
- server2 将用户重定向到 http://casserver?return=server2
- casserver 将用户重定向到 http://server2使用 authtoken
这样用户就不会多次输入凭据。
OAuth 的工作原理如下(过于简化)
人们已经使用了java based CAS 。一些帖子:
关于mysql - 跨数据库同步 persistence_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671209/