我在 Windows 10 笔记本电脑上托管的 CentOS Hyper-V VM 上创建了 OpenLDAP 安装。使用 Apache Directory Studio(在 VM 上),我创建了连接、设置了域并添加了组和人员。
VM 的 IP 地址是172.16.22.150
。在我的主机上,如果我 ping 该 IP,我会得到响应。如果我关闭 VM 并再次 ping 该 IP,这次我不会得到响应。重新启动 VM,ping,得到响应。所以看起来 IP 是好的。
到目前为止,一切都还好。然而……
首先,我也在主机上安装了 Apache Directory Studio。但是当我尝试创建相同的连接时,我得到了
连接失败 - 无法连接。
细节:
The connection failed
- Unable to connect
java.lang.Exception: Unable to connect
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$1.run(DirectoryApiConnectionWrapper.java:251)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1312)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.doConnect(DirectoryApiConnectionWrapper.java:281)
at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.connect(DirectoryApiConnectionWrapper.java:172)
at org.apache.directory.studio.connection.core.jobs.CheckNetworkParameterRunnable.run(CheckNetworkParameterRunnable.java:80)
at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:140)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Unable to connect
其次,我需要创建一个小型的 c# 控制台应用程序作为 PoC 来连接到服务器并验证用户身份。奇怪的是,我可以使用以下命令顺利连接到服务器:
LdapDirectoryIdentifier ldi = new LdapDirectoryIdentifier("172.16.22.150");
LdapConnection ldapConnection = new LdapConnection(ldi);
但是当我尝试验证用户身份时:
ldapConnection.AuthType = AuthType.Basic;
ldapConnection.SessionOptions.ProtocolVersion = 3;
NetworkCredential nc = new NetworkCredential("ccrookston", "password", "mydomain.com");
ldapConnection.Bind(nc);
我得到:
LDAP 服务器不可用。
堆栈跟踪:
at System.DirectoryServices.Protocols.LdapConnection.Connect()
at System.DirectoryServices.Protocols.LdapConnection.BindHelper(NetworkCredential newCredential, Boolean needSetCredential)
at System.DirectoryServices.Protocols.LdapConnection.Bind(NetworkCredential newCredential)
at OpenLDAP.Program.Main(String[] args) in C:\Users\caseyc\Documents\Visual Studio 2017\Projects\OpenLDAP\Program.cs:line 33
我不知道从哪里开始排除故障。这是虚拟机上的 CentOS 中的配置吗?是 Hyper-V 配置吗?还是我的 Windows 主机上的某些东西,例如防火墙设置?
谢谢!
答案1
明白了。在防火墙中(使用 GUI),我添加了端口:
389-TCP 389-UDP
看来两者都需要。