.NET-оболочка для DPAPI-NG и настройки доступа группы пользователей

У меня есть несколько рабочих станций, которые являются частью моего домена, на каждой из которых запущено какое-то приложение .NET. Один центральный сервер хранит секреты, которые я хотел бы зашифровать ключом, доступным для всех пользователей системы, имеющих соответствующую группу пользователей.

Я обнаружил, что .NET предлагает оболочку для DPAPI, но мне было интересно, применимо ли то же самое к DPAPI-NG, где существует функция-оболочка для NCryptProtectSecret и NCreatProtectionDescription. Кроме того, как мне настроить дескриптор, чтобы разрешить расшифровку секрета только определенной группе пользователей из моего домена?

В случае отсутствия оболочки мне придется импортировать ncrypt.dll и работать с ней. Кто-нибудь, у кого есть опыт работы с этой библиотекой, может подтвердить, что этот URL имеет обновленный API https://msdn.microsoft.com/en-us/library/windows/desktop/hh706795(v=vs.85).aspx?


person NLuburić    schedule 21.06.2017    source источник


Ответы (1)


Я обнаружил, что .NET предлагает оболочку для DPAPI, но мне было интересно, применимо ли то же самое к DPAPI-NG, где существует функция-оболочка для NCryptProtectSecret.

NCryptProtectSecret не имеет обращений к referencesource.microsoft.com. Таким образом, вполне вероятно, что в рамках фреймворка не существует такого API-оболочки.

Кто-нибудь, у кого есть опыт работы с этой библиотекой, может подтвердить, что этот URL имеет обновленный API https://msdn.microsoft.com/en-us/library/windows/desktop/hh706795(v=vs.85).aspx?

Сигнатуры функций в Win32 никогда не меняются. В документации могут быть ошибки в прозе, но почти никогда в поверхности API. Лучший способ убедиться в этом — найти копию заголовочного файла, в котором он был объявлен, но на самом деле это обычно необходимо только в том случае, если а) есть ссылка на именованную константу, но не указано значение, или б) вы P/Invoke и сбой и пытаясь понять, почему.

Быстрый поиск показывает, что https://github.com/NuGet/NuGet.Operations/blob/master/src/NuGet.Services.Operations/Secrets/DpapiNg/NativeMethods.cs имеет P/Invoked. Если лицензия NuGet Apache совместима с вашим использованием/потребностями, вы можете сравнить свои выводы с их выводами.

person bartonjs    schedule 21.06.2017