Использование защиты данных ASP.Net Core v2.2 ProtectKeysWithAzureKeyVault ()

Используя ASP.NET Core 2.2, я пытаюсь настроить защиту данных таким образом, чтобы я хранил связку ключей в хранилище BLOB-объектов Azure и защищал связку ключей ключом, хранящимся в KeyVault.

В моем методе ConfigureServices () у меня есть:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
            .PersistKeysToAzureBlobStorage(new Uri("myblob-sasuri"))
            .ProtectKeysWithAzureKeyVault(keyVaultClient, "key-identifier-uri");
}

Все выглядит хорошо, но меня сбивают с толку Запрещенные ошибки при доступе к хранилищу ключей. Я не могу понять, ошибся ли я как-то в идентификаторе ключа (сомнительно), в keyVaultClient или в разрешениях.

Я подозреваю разрешения, но нигде документы не говорят мне, какие разрешения нужны клиенту.

Кто-нибудь успешно справился с этой работой?


person BrettRobi    schedule 10.04.2019    source источник


Ответы (1)


Экспериментируя, я узнал, что для политики доступа KeyVault необходимо включить разрешение «Распаковать ключ» в разделе «Криптографические операции» в разделе «Разрешения ключа». Таким образом, субъекту службы, которому вы предоставляете доступ к KeyVault, должно быть предоставлено одно конкретное разрешение в ваших политиках доступа. У нас возникли проблемы, потому что мы не включили это, у нас были только разрешения на шифрование и дешифрование. Это должно быть задокументировано, я добавил отзыв в документ здесь: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.2

person BrettRobi    schedule 11.04.2019