从服务器到服务器的持久登录信息

时间:2009-09-03 13:17:52

标签: php coldfusion

我目前正在开发2个Web服务器,One Coldfusion和其他PHP。

目前,Coldfusion服务器是我的主服务器,用户登录该服务器以访问受限数据。 但是,我也开始使用PHP服务器,并希望让用户可以透明地访问该服务器上的特定页面 - 该服务器也需要登录信息。

我不希望用户登录两次。

有没有办法实现这个目标?

THX

更新:在Intranet环境中工作,因此我无法使用任何公共解决方案。

更新:我要求的原因是因为我们正在从MSQL / Coldfusion环境(初始服务器)转移到PHP / ORACLE(新服务器)。所以我也有2个用户表(虽然它们包含大部分相同的信息)。 我试图将我们的初始服务器的使用视为对用户透明的新服务器,因此我必须暂时并行工作。

7 个答案:

答案 0 :(得分:4)

大多数单点登录解决方案都有点像......

  1. 主系统验证使用
  2. 用户选择启动了迁移到系统2的需求
  3. 主系统在后台使用系统2对用户进行身份验证
  4. 系统2向主系统提供随机,长且一次性令牌
  5. 主系统使用令牌将用户重定向到系统2
  6. 系统2检查令牌(以及其他因素,如IP地址)以验证会话
  7. 系统2处理令牌以确保无法重播
  8. 您可能希望确保传输通道具有一定的安全性,尤其是在主系统和系统2相互通信的情况下。你希望这是一个安全的运输。

答案 1 :(得分:3)

将会话存储在数据库中,并在两个应用程序之间共享。

答案 2 :(得分:1)

您可以使用xml-rpc获取用户数据,并在第一个用户拥有登录Cookie时将用户登录到其他网站,反之亦然。

Php manual page for XML-rpc

答案 3 :(得分:1)

如果您在Intranet上,您实际上可以使用PHP从他们登录到网络的PC中嗅出用户的网络用户名。这假定:

  1. 您正在使用IIS来托管您的PHP应用程序。
  2. 您的用户正在使用Windows。
  3. 请查看“2.2启用支持检测用户名”部分here

    之后,您需要做的就是调查Coldfusion是否可以实现相同的目标,并且您拥有基于网络用户名的SSO解决方案。

答案 4 :(得分:1)

以下是我所做的,在运行我自己的游戏服务器时,在sql服务器和mysql上有用户,并希望将它们集成在一起。

  1. 我确保如果用户是在1个系统上创建的,那么也是在另一个系统上创建的。

  2. 因此,您可以修改两个应用程序中的代码,以便在此处创建用户,以便在其他系统中自动创建用户。

  3. 根据两台服务器是否共享一个域,您可以进行跨域会话或cookie ......但我最好的猜测是存储和检索数据......

  4. 或..

    1. 当一个人在两台服务器上登录/注册记录他们当前的IP地址,然后在2-5分钟内检查这个人是否在另一台服务器上,如果是,请使用ip地址识别它们。 ..

    2. 这个系统很棘手,因为时间很重要,所以你不要在你的安全方面留下巨大漏洞......但从短期来看,在服务器之间进行,这是我认为最简单的解决方案。 p>

    3. 祝你好运。

答案 5 :(得分:0)

如何实现OpenID解决方案,就像在StackOverflow上显而易见的那样?

答案 6 :(得分:0)

您可以通过Flash或Flex在客户端计算机上删除共享对象。然后,可以从服务器上的ColdFusion / PHP / Python读取此对象,否则这些服务器之间没有连接或访问公共数据库。

以下是Adobe Docs

中的一个简单示例
  

保持本地持久性。这是   使用共享的最简单方法   对象,并不需要Flash   媒体服务器。例如,你可以   调用SharedObject.getLocal()来创建   应用程序中的共享对象,   比如带记忆的计算器。什么时候   用户关闭计算器Flash   播放器保存最后一个值   用户计算机上的共享对象。   下次运行计算器时   它包含它拥有的值   先前。或者,如果你设置   共享对象的属性为null   在计算器应用程序之前   关闭,下次申请   运行,它打开没有任何值。   保持本地的另一个例子   持久性是跟踪用户   a的偏好或其他数据   复杂的网站,如记录   用户阅读新闻的文章   现场。跟踪此信息允许   你要展示有文章的文章   已经被阅读不同于   新的,未读的文章。存储这个   用户计算机上的信息   减少服务器负载。

完整信息:http://livedocs.adobe.com/flex/3/langref/flash/net/SharedObject.html