【问题标题】:Utilizing machinekey in load-balanced instances without storing decryption key in web.config在负载平衡的实例中使用机器密钥,而不在 web.config 中存储解密密钥
【发布时间】:2020-04-13 08:27:25
【问题描述】:

我有一个负载平衡的网络应用程序,它有两个应用程序服务,一个用于东部,一个用于西部。一个问题是 AntiForgeryToken 没有被正确解密,在我的研究中,这似乎是由于两个应用服务在运行时自动生成的不匹配的机器密钥。

这里明显的解决方案是在两个实例中都将 machinekey 参数添加到 web.config 中,因此解密密钥是相同的。

然而,我的问题来自这样一个事实,即我们的存储库不允许存储库中的任何类型的秘密。相反,我们需要使用 Azure Key Vault 并在应用启动时动态加载值。

我的问题是,如何在不依赖在 web.config 文件中存储秘密值的情况下解决这个问题?我试过搜索动态设置解密密钥,但无济于事。如果这是一个常见问题,我们深表歉意。

【问题讨论】:

  • 检查this answer
  • 谢谢约翰,这似乎是实现这一点的正确方法。

标签: asp.net-mvc azure encryption azure-web-app-service machinekey


【解决方案1】:

对于在windows app service上运行的应用,可以使用here描述的设置:

它将允许您为所有应用服务注入相同的机器键值。

如果启用托管标识,则可以将机器值存储在密钥保管库中并在应用服务应用设置中使用 key vault reference

@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2015-06-04
    相关资源
    最近更新 更多