2012-11-09 31 views
0

這將是很奇怪的抱歉,希望我將它發佈在正確的網站上。2服務器一個已認證的用戶

我從面試中得到了這個問題。

如果我有兩個服務器,一個媒體,另一個託管一個需要用戶身份驗證的網站。

用戶在訪問媒體服務器之前必須先登錄到託管在一臺服務器上的網站。只有經過身份驗證的用戶才能訪問媒體和媒體服務器。

我不知道如何通過PHP去解決這個問題?我相信我可以通過系統管理員設置Kerberos服務器並設置售票系統。但對於PHP,我只能想到RSA公私鑰加密的一些形式?

另一個解決方案/黑客是創建某種散列並將其附加到URL。

檢查用戶IP?每次用戶訪問媒體文件?

請注意,我申請的公司,經理似乎並不熟練。所以也許沒有安全的解決方案?

注:

我敢肯定,我不能使用PHP的會話它包含在一臺服務器?也許是餅乾?那是安全的...

謝謝你提前。

+0

你有多少訪問「媒體」服務器? – Dogbert

+0

啊!兩個服務器互相信任,我是在這個假設下,看起來他們在安全方面似乎並不是很重要。 – mythicalprogrammer

回答

2

爲兩臺服務器使用一個公用域,然後使用加密的cookie執行域級別的身份驗證,其中兩臺服務器具有相同的私鑰解密密鑰。

1

這可能很容易或很難:這取決於媒體服務器是否信任網絡服務器。

方案1:媒體服務器信任Web服務器 - 易

  • 雙方維持一個共享密鑰(在最廣泛的意義 - 可以是公共/私有密鑰對)
  • 在登錄時,Web服務器向客戶端傳遞令牌,該令牌由共享密鑰(或部件,網絡服務器持有)簽名或加密
  • 客戶端將此令牌提供給介質服務器,該服務器通過它的副本(或部分)對其進行身份驗證共享密鑰
  • 因此,媒體服務器處於positi關於訪問決定

場景2:媒體服務器不信任的Web服務器 - 硬

  • 記住,你永諾需要某種形式的共同信賴的池
  • 這可能是一個分佈式auth系統,像Kerberos,OpenID,不管