2服务器一个经过身份验证的用

时间:2012-11-09 16:40:08

标签: php

这很奇怪抱歉,希望我能在合适的网站上发布。

我从一次采访中得到了这个问题。

如果我有两台服务器,一台媒体,另一台托管需要用户身份验证的网站。

用户在访问媒体服务器之前必须登录到一台服务器中托管的网站。只有经过身份验证的用户才能访问媒体和媒体服务器。

我不确定如何通过PHP解决这个问题?我相信我可以通过系统管理员和设置kerberos服务器的票务系统来做到这一点。但对于PHP,我只能想到一些RSA公钥 - 私钥加密的形式?

另一个解决方案/黑客是创建某种哈希并将其附加到URL。

或者

检查用户IP?每次用户访问媒体文件?

注意,我申请的公司,经理看起来并不是很有技巧。那么也许没有安全的解决方案?

注意:

我很确定我无法使用服务器中包含的PHP会话吗?也许是一个饼干?那是否安全......

提前谢谢。

2 个答案:

答案 0 :(得分:2)

对两个服务器使用公共域,然后使用加密cookie执行域级别身份验证,其中两个服务器具有相同的私有解密密钥。

答案 1 :(得分:1)

这可能非常简单或非常困难:取决于媒体服务器是否信任网络服务器。

场景1:媒体服务器信任Web服务器 - 简单

  • 两者都保持共享秘密(在最广泛的意义上 - 可以是公钥/私钥对)
  • 登录时,Web服务器将一个令牌分发给客户端,该令牌使用共享密钥(或部分,Web服务器保存)进行签名或加密。
  • 客户端将此令牌提供给媒体服务器,媒体服务器通过其共享密钥的副本(或部分)对其进行身份验证
  • 因此,媒体服务器处于访问决策的位置

场景2:媒体服务器不信任Web服务器 - 很难

  • 记住,你总是需要某种共同信任的池子
  • 这可以是分布式身份验证系统,如Kerberos,OpenID,无论