为了账号安全,请及时绑定邮箱和手机立即绑定

PHP LDAPS 连接到 AD

PHP LDAPS 连接到 AD

PHP
森栏 2022-06-11 10:41:09
使用 PHP 7.4 通过 SSL 连接到 Windows AD$ldaphost = "ldaps://...";$ldapUsername  = "CN=supervisor,OU=test_Users,DC=test,DC=org";$ldapPassword = "xxxx";$ds = ldap_connect($ldaphost,636);echo $ds;if (!ldap_start_tls($ds)) {print "Could not start secure TLS connection";}else {// now we need to bind to the ldap server$bth = ldap_bind($ds, $ldapUsername, $ldapPassword) or die("\r\nCould not connect to LDAP server\r\n");}错误:ldap_start_tls():无法启动 TLS:无法联系 LDAP 服务器调试后 :ldap_connect 按预期返回 id 进程。我尝试使用 GUI 工具连接并且连接成功,这意味着我消除了证书问题。我感谢任何解决此问题的想法谢谢
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

您应该使用TLSldaps TLS。到目前为止,首选方式是根据 LDAPv3 的 TLS。因此,您将使用连接到不安全的后端ldap://,然后ldap_start_tls作为第一个命令调用(可能在一些ldap_set_option-calls 之后),但绝对是在调用ldap_bind.

您的问题可能是,与 LDAP-Server 的连接根本无法从有问题的机器上工作。由于ldap_connect实际上并没有连接,而只是创建了一个可用于进行实际连接的句柄,因此连接错误通常在第一次需要实际连接的调用时出现(在您的情况下ldap_start_tls)。因此,请检查您的服务器是否可以从相关机器的给定端口上访问,例如通过调用telnet servernameOrIp port或使用 cli-ldap-tool

另一件事是,您使用ldap_connect错误。您应该像这样将端口添加到 ldap-uri:如docsldaps://example.com:636中指定的那样。如果您使用 LDAP-URL,则会忽略端口参数。


查看完整回答
反对 回复 2022-06-11
?
繁星coding

TA贡献1797条经验 获得超4个赞

如果您ldap_start_tls已经指定了ldaps://. 继续你的ldap_bind.

只有当您的 DC 在普通 LDAP 端口 389 上支持 TLS 时,您才真正需要使用ldap_start_tls。在这种情况下,您需要明确指定要使用 TLS,因为您实际上可以选择。您在端口 636 上没有选择。ldap_start_tls.

另请参阅ldap_connect.


查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 343 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信