从另一台计算机安全地管理 Active Directory
Managing Active Directory securely from another computer
我创建了一个 ASP.NET 网站,该网站必须访问另一台服务器上的 Active Directory 并更改用户密码。问题是我需要使用现有的 AD 帐户进行身份验证,并且在与 Active Directory 服务器通信时无法以明文形式发送 AD 用户的密码。如何从 ASP.NET 网站与 AD 服务器通信,以便连接安全?我的 AD 服务器支持 LDAP 协议,但我不知道如何通过安全通道强制与 LDAP 通信。
ASP.NET 网站------------LDAP/another 协议(安全)------------> AD 服务器
相当简单,您需要做两件事:
- 将您的 Active Directory 实例配置为接受通过 LDAPS 或端口 636 的连接。您需要一个证书(可以是自签名的)来进行设置。
- 更新您的 LDAP 授权代码以使用此新连接。这应该只是将服务器更改为 "ldaps://{{IP OR DNS}}",并确保您设置
SessionOptions.SecureSocketLayer = true;
如果你想验证它是否正常工作,Wireshark 离开你的 ASP.Net 站点的流量通过端口 636,你应该注意到它现在已经高度加密,并且无法从中辨别出任何有意义的东西。
这些年来我做了很多这样的事情,所以我还有一些其他的问题也应该对你有所帮助:
Set callback for System.DirectoryServices.DirectoryEntry to handle self-signed SSL certificate?
(这包含 LDAPS 的完整实现)
Custom Multi-factor Active Directory Authentication
(这是一个简单得多的示例,但完全可以满足您的目的)
我创建了一个 ASP.NET 网站,该网站必须访问另一台服务器上的 Active Directory 并更改用户密码。问题是我需要使用现有的 AD 帐户进行身份验证,并且在与 Active Directory 服务器通信时无法以明文形式发送 AD 用户的密码。如何从 ASP.NET 网站与 AD 服务器通信,以便连接安全?我的 AD 服务器支持 LDAP 协议,但我不知道如何通过安全通道强制与 LDAP 通信。
ASP.NET 网站------------LDAP/another 协议(安全)------------> AD 服务器
相当简单,您需要做两件事:
- 将您的 Active Directory 实例配置为接受通过 LDAPS 或端口 636 的连接。您需要一个证书(可以是自签名的)来进行设置。
- 更新您的 LDAP 授权代码以使用此新连接。这应该只是将服务器更改为 "ldaps://{{IP OR DNS}}",并确保您设置
SessionOptions.SecureSocketLayer = true;
如果你想验证它是否正常工作,Wireshark 离开你的 ASP.Net 站点的流量通过端口 636,你应该注意到它现在已经高度加密,并且无法从中辨别出任何有意义的东西。
这些年来我做了很多这样的事情,所以我还有一些其他的问题也应该对你有所帮助:
Set callback for System.DirectoryServices.DirectoryEntry to handle self-signed SSL certificate? (这包含 LDAPS 的完整实现)
Custom Multi-factor Active Directory Authentication (这是一个简单得多的示例,但完全可以满足您的目的)