0

我已经在已经运行 FreeIPA 进行用户身份验证的 Centos 7 服务器上安装了 openLDAP。http://www.tecmint.com/setup-ldap-server-and-configure-client-authentication

openLDAP 的目的是让 Nodejs 应用程序管理应用程序的用户。并将在单独的服务器上运行。

我可以看到 slapd 正在运行(ps -ef | grep slapd):

ldap      1287     1  0 06:40 ?        00:00:00 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

所以我试图使用 ldapadd 命令更改默认值,并且我怀疑正在连接到在盒子上配置的 FreeIPA LDAP(在某些使用 -x -h 的命令上,它要求输入尚未设置的密码):

sudo ldapadd -H ldapi:/// -f ldaprootpasswd.ldif

SASL/GSS-SPNEGO authentication started
ldap_sasl_interactive_bind_s: Local error (-2)
        additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (SPNEGO cannot find mechanisms to negotiate)

如果我运行 ldapsearch,那么我似乎能够连接到 openLDAP:

sudo ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" olcSuffix olcRootDN olcRootPW -LLL -Q
dn: olcDatabase={2}hdb,cn=config
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=co

我想也许我可以使用 Windows LDAP 工具进行外部连接,但出现连接错误。我确实确认该端口已打开并且在外部可见。

nmap -p 389 10.18.16.243

Starting Nmap 7.12 ( https://nmap.org ) at 2016-09-28 11:25 GMT Daylight Time
Nmap scan report for 10.18.16.243
Host is up (0.00s latency).
PORT    STATE    SERVICE
389/tcp filtered ldap
MAC Address: BB:BB:BB:BB:BB:00 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 19.92 seconds 

我尝试使用 -h 而不是 -H:

sudo ldapadd -a -x -h localhost -p 389 -D cn=Manager,dc=my-domain,dc=com -W -f ldaprootpasswd.ldif

这会提示我输入密码,但我刚刚安装了 openLDAP,还没有设置密码(olcRootPW 在我尝试应用的 ldif 文件中)。

有没有人有使用 openLDAP 进行用户身份验证的经验,或者有任何想法需要更改哪些配置才能使其运行?

4

1 回答 1

0

秘密咒语是:

sudo ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif

由于“-a”在使用 ldapmodify 时强制添加新条目,因此与上面的相同:

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif

“-Q”——启用 SASL 安静模式。从不提示。

“-Y”——指定用于身份验证的 SASL 机制。如果未指定,程序将选择服务器知道的最佳机制。

于 2016-09-29T09:24:25.737 回答