使用ASP.NET Core 2.2我正在尝试配置数据保护,以便将密钥环存储在Azure Blob存储中,并使用存储在KeyVault中的密钥保护密钥环。
在我的ConfigureServices()方法中,我有:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.PersistKeysToAzureBlobStorage(new Uri("myblob-sasuri"))
.ProtectKeysWithAzureKeyVault(keyVaultClient, "key-identifier-uri");
}
一切看起来都不错,但我在访问keyvault时遇到了Forbidden错误。我无法弄清楚我是否以某种方式搞砸了密钥标识符(可疑)或keyVaultClient或权限。
我怀疑权限,但文档无处告诉我客户端需要什么权限。
有人做过这项工作吗?
通过实验,我了解到KeyVault访问策略必须在Key Permissions的Cryptographic Operations部分中启用“Unwrap Key”权限。因此,您授予KeyVault访问权限的服务主体必须被授予访问策略中的一个特定权限。我们遇到了问题,因为我们没有启用它,我们只启用了加密和解密权限。这应该记录在案,我在这里向文档添加了反馈:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.2