我有一个装满测试数据的 AD。我有查询此 AD 的自动化测试。我很希望能够在任何地方运行这些测试,包括在域外。
我已经看到了这个问题我是否应该将我的 Active Directory 公开到公共 Internet 以供远程用户使用?。我其实不太关心应该做什么,这只是测试数据,而且我的安全要求很低。
如何设置我的 AD 以便可供所有人访问?
如果这很重要,我正在使用该System.DirectoryServices
库来查询 AD。
using (var directoryEntry = new DirectoryEntry("LDAP://...", "username", "password"))
using (var searcher = new DirectorySearcher(directoryEntry, "(givenName=*)", new[] { "attributeOfInterest" }))
{
return searcher.FindAll();
}
答案1
为了满足这一特定场景,您真正需要做的就是在将域控制器与互联网隔开的任何防火墙上打开端口 389。网络上的所有内容都将是明文。不会使用 Kerberos。您可能还需要某种外部可解析的 DNS 名称(尽管严格来说不是技术要求)。您可能还拥有一个需要设置端口转发的 NAT 路由器,以将端口 389 上的流量转发到您的内部域控制器。不知道您的网络的具体情况。
PS——对于未来可能会偶然发现这一点的读者——不要将此视为我认为这是个好主意的认可。:)