openldap : ldapsearch ldap_bind: 无效凭证 (46)
openldap : ldapsearch ldap_bind: Invalid credentils (46)
我正在尝试从主机到容器进行 ldapsearch,但它不起作用。
我从 :
开始
docker run --env LDAP_ORGANISATION="OpenLdap" --env LDAP_DOMAIN="example.org" --env LDAP_ADMIN_PASSWORD="admin" -p 389:389 -p 636:636 --name openldap --detach osixia/openldap:1.5.0
然后这有效:
$ docker exec openldap ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# example.org
dn: dc=example,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: OpenLdap
dc: example
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
但这在直接从主机执行时不会:
ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
结果:
ldap_bind: Invalid credentials (49)
非常感谢您的帮助
我在我的本地系统上测试了这个,并使用更正的 docker run
命令行...
docker run \
--env LDAP_ORGANISATION="OpenLdap" \
--env LDAP_DOMAIN="example.org" \
--env LDAP_ADMIN_PASSWORD="admin" \
-p 389:389 \
-p 636:636 \
--name openldap \
--detach osixia/openldap:1.5.0
...我可以成功 运行 你的 ldapsearch
命令在内部和
容器外。您看到的行为表明,当
你在主机上 运行ning ldapsearch
,它没有连接到
您在容器内使用的相同 ldap 服务器。
您需要检查是否有其他任何东西正在侦听端口 389
你的系统。在Linux下,可以通过运行ning netstat -tln
;
如果你在 Windows,等价的命令是 netstat -aon
.
如果您发现其他东西正在监听 389 端口,您的选择是 (a)
杀死它或 (b) 将容器化服务映射到不同的端口。
我正在尝试从主机到容器进行 ldapsearch,但它不起作用。
我从 :
开始docker run --env LDAP_ORGANISATION="OpenLdap" --env LDAP_DOMAIN="example.org" --env LDAP_ADMIN_PASSWORD="admin" -p 389:389 -p 636:636 --name openldap --detach osixia/openldap:1.5.0
然后这有效:
$ docker exec openldap ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# example.org
dn: dc=example,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: OpenLdap
dc: example
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
但这在直接从主机执行时不会:
ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
结果:
ldap_bind: Invalid credentials (49)
非常感谢您的帮助
我在我的本地系统上测试了这个,并使用更正的 docker run
命令行...
docker run \
--env LDAP_ORGANISATION="OpenLdap" \
--env LDAP_DOMAIN="example.org" \
--env LDAP_ADMIN_PASSWORD="admin" \
-p 389:389 \
-p 636:636 \
--name openldap \
--detach osixia/openldap:1.5.0
...我可以成功 运行 你的 ldapsearch
命令在内部和
容器外。您看到的行为表明,当
你在主机上 运行ning ldapsearch
,它没有连接到
您在容器内使用的相同 ldap 服务器。
您需要检查是否有其他任何东西正在侦听端口 389
你的系统。在Linux下,可以通过运行ning netstat -tln
;
如果你在 Windows,等价的命令是 netstat -aon
.
如果您发现其他东西正在监听 389 端口,您的选择是 (a) 杀死它或 (b) 将容器化服务映射到不同的端口。