2016-10-03 54 views
1

我有一個運行在.NET 4.5.1上的ASP.NET WebForms應用程序,並且已經使用基於Cookie的身份驗證和FormsAuthentication API(不是使用身份API,而是我手動管理用戶和會話)。此應用程序在多個服務器上運行,並且爲了使Cookie在所有服務器上都能正常工作,我已經將該機器密鑰設置爲web.config文件中所有服務器的相同值。在服務器之間共享DPAPI密鑰?

爲了能夠與在.NET Core 1.0上運行的MVC應用程序共享身份驗證cookie,我正在從FormsAuthentication API轉移到基於Katana/OWIN的cookie身份驗證。雖然我已經通過遵循https://github.com/blowdart/idunno.CookieSharing的步驟驗證和共享在單臺計算機上工作的cookie,但我不確定如何在服務器之間共享密鑰。所有示例都通過指向包含密鑰文件的路徑來設置基於cookie的身份驗證。如果我能夠手動生成密鑰並將其複製到所有服務器,這將工作。但我不知道如何生成這些密鑰文件(並且docs似乎沒有提及如何執行此操作)。如一些示例所示,將密鑰文件放在共享文件夾中是不可能的,因爲服務器位於完全獨立的網絡上(這可能會在將來發生變化,但現在不會發生變化)。

有沒有一種方法可以用我的設置共享多個服務器之間的密鑰(即不能共享文件夾)?

+0

大衛,現在你看起來你是正確的,很難走出箱子。 1.1的記錄計劃可輕鬆訪問KeyVault和AzureStorage。現在,我認爲你可能需要實現KeyManager的某些部分(很可能是IXMLRepository),請參閱:https://docs.asp.net/en/latest/security/data-protection/extensibility/key-management.html我很感興趣爲什麼獨立域上的機器需要共享密鑰。 –

回答

1

大衛,現在你看起來你是正確的,很難走出箱子。 1.1的記錄計劃可輕鬆訪問KeyVault和AzureStorage。現在,我認爲你可能需要實現KeyManager的某些部分(很可能是IXMLRepository),請參閱:docs.asp.net/en/latest/security/data-protection/extensibilit y/...我感興趣爲什麼獨立域上的機器需要分享鑰匙