在服务器之间共享DPAPI密钥?

问题描述:

我有一个运行在.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的记录计划可轻松访问KeyVault和AzureStorage。现在,我认为你可能需要实现KeyManager的某些部分(很可能是IXMLRepository),请参阅:docs.asp.net/en/latest/security/data-protection/extensibilit y/...我感兴趣为什么独立域上的机器需要分享钥匙