无法使用 Google WorkspaceLDAP 连接 LDAP 服务器

无法使用 Google WorkspaceLDAP 连接 LDAP 服务器

我尝试测试与 Google Workspace LDAP 服务器的连接。我按照此帮助页面进行操作:https://support.google.com/a/answer/9190869?hl=en#ldap-query&zippy=%2Cldapsearch

但是当我运行建议的命令时,出现此错误:

root@debian:/etc/freeradius/3.0# LDAPTLS_CERT=/etc/freeradius/3.0/certs/ldap-client.crt LDAPTLS_KEY=/etc/freeradius/3.0/certs/ldap-client.key ldapsearch -v -H ldaps://ldap.google.com:636 -b dc=MYDOMAIN,dc=cz '([email protected])'
ldap_initialize( ldaps://ldap.google.com:636/??base )
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
    additional info: (unknown error code)

知道什么地方出了问题吗?

答案1

在 Ubuntu 20.04 上,我发现必须通过设置来禁用 TLS1.3,LDAPTLS_CIPHER_SUITE='NORMAL:!VERS-TLS1.3'才能使 ldapsearch 针对 Google LDAP 运行。

我是如何到达这里的:

ldapsearch 命令支持使用标志将增加的调试信息打印到控制台-d debuglevel。调试级别 1 ( -d1) 对我来说已经足够了,更高的调试级别会变得非常冗长且难以阅读。

一个简单的调试命令可能如下所示:

vagrant@focal:~$ ldapsearch -H ldaps://ldap.google.com:636 -d1

从这里我可以看出该证书不受信任:

...
attempting to connect:
connect success
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
...

这毫无意义。ldap.google.com 返回的证书是有效的,可以根据我的/etc/ssl/certs/ca-certificates.crt使用进行验证openssl s_client -connect ldap.google.com:636 -CAfile /etc/ssl/certs/ca-certificates.crt,但 ldapsearch 不信任它。

我终于遇到了这个帖子在 OpenLDAP 邮件列表中,解释了问题出在不支持 SNI,这会导致 Google 返回无效的自签名证书。我无法找到合适的解决方案,但底部的解决方法是通过设置环境变量禁用 TLS1.3,LDAPTLS_CIPHER_SUITE因为我的 OpenLDAP 使用的是 GnuTLS。如果您使用的是 OpenSSL,您可能需要找到不同的解决方法,但根本原因可能仍然相同。

相关内容