2009-09-03 382 views
3

我目前正在使用2臺Web服務器,一臺Coldfusion和另一臺PHP。從服務器到服務器的持久登錄信息

眼下,ColdFusion服務器是用戶登錄訪問受限制的數據我的主服務器。 但是,我也已經開始使用PHP服務器,並希望透明用戶訪問該服務器上的特定頁面 - 該服務器還需要登錄信息。

我不希望用戶登錄兩次。

有沒有辦法做到這一點?

THX

UPDATE:在Intranet環境中工作,所以我不能使用任何公開的解決方案。

UPDATE:原因我問這個是因爲我們是從MSQL/ColdFusion的環境(初始服務器)移動到PHP/ORACLE(新服務器)。所以我也有2個用戶表(儘管它們大多包含相同的信息)。 我試圖淡化使用我們的初始服務器來支持我們的新服務器對用戶透明,因此我必須暫時並行工作。

回答

4

大多數單點登錄解決方案的工作有點像這樣...

  1. 主系統進行身份驗證使用
  2. 用戶選擇啓動需要移動到系統2
  3. 主系統對用戶進行認證與系統2在後臺
  4. 系統2向主系統提供一個隨機,長期和一次性令牌
  5. 主系統用令牌將用戶重定向到系統2
  6. 系統2個檢查令牌(以及其他因素,如IP地址)來驗證會話
  7. 系統令牌2和處置,以確保它不能被重播

你會希望確保傳輸通道具有一定的安全性,尤其是在主系統和系統2正在相互通話的情況下。你會希望這是一個安全的交通工具。

+0

在當前的設置,登錄表也不同請問這仍然工作 – ddallala 2009-09-03 14:37:01

+0

你會需要鏈接的一些知識 - ?即外部用戶ID – Fenton 2009-09-04 06:55:21

3

存儲在數據庫中的會話,並在兩個應用程序之間共享。

0

如何實現一個OpenID的解決方案,就像在計算器上的一個明顯?

+0

哇。我投這個想法。 – vpram86 2009-09-03 13:52:22

+0

雅那將是巨大的,但是,我在Intranet環境中工作,因此所有的解決方案都必須本地託管。 :( – ddallala 2009-09-03 13:52:47

+0

使用OpenID,你還是要在每個站點上輸入您的用戶名和密碼,不是嗎?我可能是錯的。 – Fenton 2009-09-03 13:54:15

1

如果您在Intranet上,你實際上可以嗅出從他們登錄到使用PHP網絡的PC用戶的網絡用戶名。這假設:

  1. 您正在使用IIS託管您的PHP應用程序。
  2. 您的用戶正在使用Windows。

查看「2.2啓用支持檢測用戶名」部分here

之後,所有你需要做的是調查,如果同樣是可能從ColdFusion和您有一個基於網絡的用戶名的SSO解決方案的基礎。

+0

你可以做同樣的ColdFusion中的CGI變量的作用域的cfdump。應該給所有想要的信息。 – ale 2009-09-03 16:55:53

0

您可以受益於通過Flash或Flex在客戶機上滴下共享對象。然後可以從服務器上的ColdFusion/PHP/Python中讀取此對象,否則這些服務器之間沒有彼此連接或訪問公用數據庫。

這裏是從Adobe文檔

一個簡單的例子,保持本地永久性。這是 使用共享對象的最簡單方式,並且不需要Flash 媒體服務器。例如,可以 調用SharedObject.getLocal()在應用程序中創建 共享對象中,與存儲器的計算器這樣 。當 用戶關閉計算器時,Flash播放器 保存在用戶的計算機上的共享 對象中的最後一個值。 計算器下一次運行時,它包含之前的值 。或者,如果設置 共享對象的屬性設置爲null 前的計算器應用程序是 封閉,應用 運行時,它會打開沒有任何價值的下一次。 保持本地 持久性的另一個示例是跟蹤 複雜網站的偏好或其他數據,例如 用戶在新聞 網站上閱讀的文章的記錄。通過跟蹤此信息,您可以使用 顯示 與 新的未讀文章不同的文章。在用戶計算機 上存儲此 信息可減少服務器負載。

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

1

這裏是我做了什麼,在經營自己的遊戲服務器,有用戶在SQL Server上,並在MySQL,並希望他們兩個整合。

  1. 我確信如果用戶是在1系統上創建的,也是在另一個系統上創建的。

  2. 所以,你可以在這兩個應用程序修改的代碼,如果它是在這裏創建自動創建在其他系統中的用戶。

  3. 取決於如果兩個服務器共享一個域,你可以做跨域會話或餅乾......可是我最好的猜測是存儲和retreive數據...

或..

  1. 一個人登錄/註冊記錄自己當前的IP地址,這兩個服務器上,然後檢查,如果這個人2-5分鐘內被對方服務器上,如果是的話,可以使用IP地址來識別它們。 ...

  2. 這個系統很棘手,因爲時間安排很重要,所以你不要在安全性方面留下一個巨大的漏洞......但就短期而言,這是最簡單的解決方案,在我看來。

祝你好運。