用于DPAPI-NG和用户组访问配置的.NET包装

问题描述:

我有许多工作站,它们都是我的域的一部分,每个工作站都运行一些.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

我发现,.NET确实提供了DPAPI的包装,但我不知道是否同样适用于DPAPI-NG,其中一个包装函数存在NCryptProtectSecret

NCryptProtectSecretreferencesource.microsoft.com没有命中。所以框架中很可能不存在这样的包装API。

任何有此库经验的人都可以确认此网址有最新的API https://msdn.microsoft.com/en-us/library/windows/desktop/hh706795(v=vs.85).aspx

Win32中的函数签名永远不会改变。该文档可能在散文中存在错误,但几乎从不在API表面。最好的方法是找到它所声明的头文件的副本,但实际上这通常只在以下情况下才有必要:a)引用了命名常量,但未提供值或b)您P/Invoke并崩溃,并且试图找出原因。

快速搜索显示https://github.com/NuGet/NuGet.Operations/blob/master/src/NuGet.Services.Operations/Secrets/DpapiNg/NativeMethods.cs有P /调用这些。如果NuGet的Apache许可证与您的使用/需求兼容,您可以将您的结论与他们的结论进行比较。