Gur*_*kha 5 java security authentication ldap mongodb
我是MongoDB和LDAP的新手.我正在尝试使用LDAP来验证用户mongo.这些是我到目前为止所做的步骤.
Run Code Online (Sandbox Code Playgroud)ldap_servers: ldap://com.myldap.server ldap_use_sasl: yes ldap_mech: DIGEST-MD5 ldap_auth_method: fastbind
mux里面创建了一个/var/run/saslauthd现在看起来像的目录/var/run/saslauthd/mux使用权限将权限设置为755 sudo chmod 755 /var/run/saslauthd
修改/etc/sysconfig/saslauthd了以下内容
MECH=ldap
DAEMONOPTS=--user saslauth
现在,当我尝试使用以下命令测试身份验证机制时:
testsaslauthd -u username -p password -f /var/run/saslauthd/mux
我收到以下消息:
connect(): Permission Denied
我的工作是基于这个,这 可以有人指出我在这里缺少什么?提前致谢.
更新:
我试过sudo下面的测试命令:
sudo testsaslauthd -u username -p password -f /var/run/saslauthd/mux
我得到以下内容:
connect() : Connection refused
谢谢你的提问。我很喜欢设置我的环境来尝试重现错误。你会很高兴听到我不认为这是一个难以克服的问题。然而,我在设置 MongoDB 上花费的时间可能比我预期的要多,cyrus-sasl-md5设置权限等,而实际上没有任何内容与您的问题相关,至少乍一看是这样。
你的问题(我90%确定)要么是你的saslauthd守护进程没有运行或者没有正确配置。我们来看看以下内容:
检查service status。的输出service saslauthd status应该与我的类似,粘贴在下面。请注意一些关键值,例如 init 脚本的位置(/etc/init.d/saslauthd/在我的例子中);和套接字,/var/run/saslauthd/mux您需要放入的相同文件位置testsaslauthd [...] -f /var/run/saslauthd/mux命令的文件位置相同。
root@hectorvp-pc:~# service saslauthd status \n\xe2\x97\x8f saslauthd.service - LSB: saslauthd startup script\n Loaded: loaded (/etc/init.d/saslauthd)\n Active: active (running) since Tue 2016-04-26 12:04:59 BST; 1s ago\n Docs: man:systemd-sysv-generator(8)\n Process: 11569 ExecStop=/etc/init.d/saslauthd stop (code=exited, status=0/SUCCESS)\n Process: 11586 ExecStart=/etc/init.d/saslauthd start (code=exited, status=0/SUCCESS)\n Memory: 2.0M\n CGroup: /system.slice/saslauthd.service\n \xe2\x94\x9c\xe2\x94\x8011606 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5\n \xe2\x94\x9c\xe2\x94\x8011607 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5\n \xe2\x94\x9c\xe2\x94\x8011608 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5\n \xe2\x94\x9c\xe2\x94\x8011609 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5\n \xe2\x94\x94\xe2\x94\x8011610 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5\n\nApr 26 12:04:59 hectorvp-pc systemd[1]: Starting LSB: saslauthd startup script...\nApr 26 12:04:59 hectorvp-pc saslauthd[11586]: * Starting SASL Authentication Daemon saslauthd\nApr 26 12:04:59 hectorvp-pc saslauthd[11606]: detach_tty : master pid is: 11606\nApr 26 12:04:59 hectorvp-pc saslauthd[11606]: ipc_init : listening on socket: /var/run/saslauthd/mux\nApr 26 12:04:59 hectorvp-pc systemd[1]: Started LSB: saslauthd startup script.\nApr 26 12:04:59 hectorvp-pc saslauthd[11586]: ...done.\nRun Code Online (Sandbox Code Playgroud)\n\n如果服务没有运行,只需启动它service saslauthd start并再次检查状态(service saslauthd status ) 以检查任何可能的上游错误。
您的 LDAP 服务器也可能未运行或配置错误。您可以查看上面的服务状态(service slapd status)。
请尝试一下并告诉我们结果。
\n\n\n\n\n编辑(2016年4月26日):从这个答案的评论中的对话中,我提取了更多步骤。请对答案下面的广泛对话表示歉意,总结如下:
\n
调试saslauthd服务:如此处所示,该服务使用系统日志。在我的例子(Ubuntu)中,这些日志在,但在你的例子中/var/log/syslog可能也有。/var/log/messages至少默认情况下是这样。在尝试启动服务时查看此日志,看看是否看到任何错误消息,这可能会让您进一步了解问题所在。
出现的错误/var/logs/messages是:could not bind to socket : /var/run/saslauthd/mux , bind: address already in use。
我们mux使用 file 命令检查了套接字:file /var/run/saslauthd/mux输出显示它是一个目录。它应该是一个socket. 然后我们将其删除并重新启动服务。现在服务正常了。
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |