如何在c#应用程序中保护服务帐户?
问题描述:
我有一个服务帐户,我的应用程序,并在我的应用程序的工作实际上为:如何在c#应用程序中保护服务帐户?
private string SA_myapp = "[email protected]";
private string SA_myapp_pass = "5tr0ngP455w0rd";
private DirectoryEntry LDAP = new DirectoryEntry("LDAP://" + domainName, SA_myapp, SA_myapp_pass);
它的工作很好,但我相信这不是好办法做到这一点。
如何在我的应用程序中以更安全的方式使用我的服务帐户?
PS:C#应用程序时,Windows,活动目录帐户
答
您可以使用DPAPI来保护密码,并将其存储在注册表中,因此基本上是当业务负载本身首次从一个注册表中读取值键(说pass_clear),然后,当它启动时,它检查在键pass_clear的值,如果找到一个值它读取它,并通过调用
ProtectedData.Protect(pass_clear , s_aditionalEntropy, DataProtectionScope.CurrentUser);
的加密的字节[]然后可以转化为固定它base64字符串并存储在另一个注册表项pass_secure中,然后可以由应用程序/服务在需要时使用它d将自己绑定到LDAP端口。
当前用户的数据保护范围只允许服务帐号解密密码,框架为您做密钥管理。