我正在编写一项服务,允许我公司域上的用户执行有限的活动目录操作。这些用户没有AD自己的权限,但该站点作为共享用户进行身份验证,可以执行诸如解锁帐户之类的操作(例如)。
我的代码中的密码目前是纯文本
我是否有建议的方法来保护此密码?显然有人必须反编译网站二进制文件才能访问它,但我觉得这不足以保护它。
对于后台我在C#中使用较新的System.DirectoryServices.AccountManagement方法来执行此操作,所以我有:
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "MYDOMAIN", "theuser", "thepassword");
任何提示赞赏!否则我可能只是采用混淆,加密它并使用几个类似badger-warren的类来解密值
答案 0 :(得分:3)
我认为最好的方法是让应用程序池标识具有足够的权限在Active Directory中执行必要的工作。这将允许Web应用程序在不需要硬编码的用户名和密码的情况下运行。您可能需要系统管理员的帮助才能进行此设置。
请记住,混淆只能很好地运作。在执行之前,必须对模糊处理的代码进行去模糊处理,以便处理器能够理解它。如果有人确定,这可能会被打败。但如果发生这种情况,您可能不仅仅是安全问题。
最后,连接到活动目录的用户应该具有最少的访问权限,以便在发现用户名和密码时减轻任何可能的损害。