使用 ASP.Net Core v2.2 ProtectKeysWithAzureKeyVault() 数据保护

Using ASP.Net Core v2.2 ProtectKeysWithAzureKeyVault() data protection

使用 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");
}

一切看起来都不错,但我对访问密钥库时出现的禁止错误感到困惑。我不知道我是否以某种方式搞砸了密钥标识符(可疑)或 keyVaultClient,或权限。

我怀疑权限,但文档没有告诉我客户端需要什么权限。

有人成功完成这项工作吗?

通过实验,我了解到 KeyVault 访问策略必须在密钥权限的加密操作部分启用 "Unwrap Key" 权限。因此,您授予运行访问 KeyVault 的服务主体必须授予运行访问策略中的一项特定权限。我们 运行 遇到问题是因为我们没有启用它,我们只是启用了加密和解密权限。这应该记录在案,我在此处向文档添加了反馈:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.2