2015-11-02 65 views
2

我們在一些ArcGIS Server Web服務上使用基於令牌的安全性,並試圖更好地瞭解它們的工作方式。我們目前必須使用粘性會話,因爲我們具有負載平衡的冗餘和性能服務。然而,我閱讀的所有文檔(例如下面的文章)都表明,使用令牌認證實際上應該消除對粘滯會話的需要。在我完成的所有閱讀之後,我仍然不確定爲什麼會出現這種情況。令牌認證如何與負載平衡的Web服務配合工作

如果用戶登錄並從我們的一個負載平衡服務器接收到令牌,並且令牌隨每個後續請求一起傳遞,爲什麼不需要確保請求在同一臺服務器上結束。其他服務器將如何驗證令牌?根據我的讀數,我可以想到的唯一方法是,可以在沒有粘性會話的情況下工作,將令牌簽名存儲在所有負載均衡服務器可用的中央存儲庫中。再次,這與存儲與存儲會話信息相同的令牌本身沒有什麼不同。

http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543

+0

你有沒有解決過這令人滿意的問題? 我們剛剛遇到同樣的問題,並想知道是否已有解決方案 – kenneedham

+0

真的沒有「問題」我只是試圖更好地瞭解它是如何工作的。對不起,我不能有更多的幫助.. – NenadK

回答

1

我可以根據我的讀數認爲,這可能是 在不粘性會話工作的唯一方法是在一箇中央存儲庫中的令牌簽名 存儲所有負載均衡服務器。

是的,這是正確的。鏈接的文章確實顯示持久性令牌存儲。

唯一的例外是如果使用JWT(也在鏈接的文章中),或者類似的機制不存儲令牌服務器端。

這是因爲即使用戶名在可存儲在cookie客戶端的JWT中,用戶名仍受MAC保護。該消息認證碼使用服務器端祕密散列用戶名。這個祕密可以在所有負載平衡的服務器之間共享,重新運行MAC算法可以確保客戶端存儲的用戶名沒有被篡改。

實際上請記住永遠存儲失效日期 - 否則您的智威湯遜將很容易受到重播攻擊(例如,有效用戶保存它們的cookie值,以便以後可能無法訪問該用戶時使用)。

+0

我想在智威湯遜方面想更多。我想我沒有說清楚。只要_something_在服務器之間共享,這對我來說就很有意義。令牌認證的很多解釋都沒有提到這部分。謝謝。 – NenadK