gpt4 book ai didi

networking - 通过 SSL 将 Docker 容器连接到企业 LDAP 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:43 24 4
gpt4 key购买 nike

我需要将 Docker 容器连接到企业 LDAP 服务器。

容器的目的是根据公司的 LDAP 服务器对用户进行身份验证。

容器可以完美地以“匿名”方式查询服务器。问题是当我尝试进行身份验证时。服务器要求以 secret 方式传输凭据。即,通过 SSL/TLS。

有趣的是,在我的 Ubuntu 主机上,我能够查询服务器并对其进行身份验证。所以,这适用于我的主机,但不适用于容器

ldapsearch -x -D "uid=<ACCOUNT>,ou=People,o=hp.com" -W -H ldaps://<LDAP DOMAIN> -b "o=hp.com" -s sub 'uid=*'

容器可以匿名查询服务器(无需 SSL)。所以这在容器中有效:

ldapsearch -d8 -x -H ldaps://<LDAP DOMAIN> -b "o=hp.com" -s sub 'uid=*'

这样做:

curl "ldap://<LDAP DOMAIN>/o=hp.com?cn?sub?(sn=rosado)"

现在,我确定这是 SSL 的问题,因为在容器内部......

1)我可以匿名连接到 LDAP 服务器(因为匿名用户不需要保密通信。因此,他们不需要 SSL)。

2) 在 Debug模式下运行 ldapsearch 时,我得到以下报告:

ldapsearch -x -D "uid=<ACCOUNT>,ou=People,o=hp.com" -W -H ldaps://<LDAP DOMAIN> -b "o=hp.com" -s sub 'uid=*

调试输出:

TLS: can't connect: (unknown error code).    ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

我尝试过的一些事情包括:

-将证书从我的主机安装到我的容器。将它放在/usr/local/share/ca-certificates/上并执行 update-ca-certificates .

-在容器中使用openssl客户端确保可以建立连接openssl s_client -connect <LDAP DOMAIN>:<PORT> .这是输出:

CONNECTED(00000003)
depth=1 O = hp.com, OU = IT Infrastructure, C = US, O = Hewlett-Packard Company, CN = <CORP INFO> Class 2 Certification Authority
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
<CORP INFO>
---
Server certificate
-----BEGIN CERTIFICATE-----
<CORP INFO>

Start Time: 1426872988
Timeout : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)

最佳答案

SSL/TLS 连接失败通常有两个原因:协议(protocol)不匹配或信任问题。

可以使用网络协议(protocol)分析器诊断协议(protocol)不匹配,例如 Wireshark或者通过打开客户端调试(使用 -d 65535 参数到 ldapsearch)。

信任问题也应该在调试输出中可见。但还要检查 ldap.confTLS_CACERTTLS_CACERTDIR 参数,它们指向包含所有受信任 CA 的文件或目录。确保 docker 容器中的与主机上的相同。

检查 docker 容器和主机上的 openldap 版本和底层 SSL/TLS 实现版本(openldap 可能使用 NSS、GnuTLS 或 OpenSSL)是否相同。

关于networking - 通过 SSL 将 Docker 容器连接到企业 LDAP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com