从另一台计算机安全地管理Active Directory

时间:2015-03-19 15:53:42

标签: c# asp.net security active-directory ldap

我创建了一个ASP.NET网站,该网站必须访问另一台服务器上的Active Directory并更改用户密码。问题是我需要使用现有的AD帐户进行身份验证,并且在与Active Directory服务器通信时无法以纯文本格式发送AD用户密码。如何从ASP.NET网站与AD服务器通信,以确保连接安全?我的AD服务器支持LDAP协议,但我不知道如何通过安全通道强制与LDAP通信。

ASP.NET网站-------------- LDAP /其他协议(安全)------------> AD服务器

1 个答案:

答案 0 :(得分:1)

相当简单,你需要做两件事:

  • 配置您的Active Directory实例以接受通过LDAPS或端口636的连接。您需要一个证书(可以是自签名的)来设置它。
  • 更新LDAP授权代码以使用此新连接。这不应该只是将服务器更改为" ldaps:// {{IP或DNS}}",并确保您设置SessionOptions.SecureSocketLayer = true;

如果您想验证它是否正常工作,请将您的ASP.Net站点上的流量转移到端口636上,并且您应该注意到它现在已经过大量加密,并且不可能从中辨别出任何有意义的东西。

这些年来我已经做了很多这样的事情,所以我还有一些其他问题可以帮助你:

Set callback for System.DirectoryServices.DirectoryEntry to handle self-signed SSL certificate? (这包含LDAPS的完整实现)

Custom Multi-factor Active Directory Authentication (这是一个更简单的例子,但对你的目的来说可以完美地运行)