. NET Защита данных Core Entity Framework - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь реализовать защиту персональных данных для определенных c полей в базе данных (некоторые являются частью Identity, а некоторые - в пользовательских таблицах), и я не могу найти какую-либо надлежащую документацию / примеры того, как чтобы сделать это.

Моя основная идея состояла в том, чтобы использовать встроенную. NET защиту данных ядра и просто внедрить IDataProtectionProvider в IPersonalDataProtector, который используется Entity Framework.

services.AddDataProtection();
services.AddTransient<ILookupProtector, LookupProtector>();
services.AddTransient<IPersonalDataProtector, Protector>();

Вот простые реализации

public class LookupProtector : ILookupProtector
{
    private readonly IDataProtector dataProtector;

    public LookupProtector(IDataProtectionProvider dataProtectionProvider)
    {
        dataProtector = dataProtectionProvider.CreateProtector("protector-key");
    }

    public string Protect(string keyId, string data)
    {
        return "";
    }

    public string Unprotect(string keyId, string data)
    {
        return "";
    }
}

public class Protector : IPersonalDataProtector
{
    private readonly IDataProtector dataProtector;

    public Protector(IDataProtectionProvider dataProtectionProvider)
    {
        dataProtector = dataProtectionProvider.CreateProtector("protector-key");
    }

    public string Protect(string data)
    {
        return dataProtector.Protect(data);
    }

    public string Unprotect(string data)
    {
        return dataProtector.Unprotect(data);
    }
}

Теперь я не совсем уверен, почему мне нужно реализовать ILookupProtector (в противном случае я получаю ошибку), как используется keyId, и если кто-то может предложить общие пример того, как реализовать это, используя ключи шифрования от Azure Key Vault.

...