我的应用程序服务帐户和我的应用程序工作实际上是:
private string SA_myapp = "service_account_myapp@domain.com";
private string SA_myapp_pass = "5tr0ngP455w0rd";
private DirectoryEntry LDAP = new DirectoryEntry("LDAP://" + domainName, SA_myapp, SA_myapp_pass);
它也有效,但我相信这不是一个好方法。
如何在我的应用中以更安全的方式使用我的服务帐户?
PS:C#app,Windows,活动目录帐户
答案 0 :(得分:1)
您可以使用DPAPI来保护密码并将其存储在注册表中,因此当服务首次加载自身时,它会从一个注册表项(例如pass_clear)读取值,然后在启动时检查一个值在密钥pass_clear中,如果找到一个值,它会读取它并通过调用
来保护它ProtectedData.Protect( pass_clear , s_aditionalEntropy, DataProtectionScope.CurrentUser );
然后可以将加密的byte []转换为base64字符串并存储在另一个注册表项pass_secure中,然后应用程序/服务可以在需要将其自身绑定到LDAP端口时使用该注册表项。
当前用户的数据保护范围只允许服务帐户解密密码,框架为您进行密钥管理。