首页 > 解决方案 > 无法在 Ubuntu 18.04 LTS 上进行 ldap 身份验证

问题描述

我正在尝试使用以下指南在 Ubuntu 上启用 LDAP 身份验证: https ://computingforgeeks.com/how-to-configure-ubuntu-18-04-ubuntu-16-04-lts-as-ldap-client/

https://help.ubuntu.com/community/LDAPClientAuthentication

https://www.youtube.com/watch?v=l0e8rG0mku8

到目前为止似乎没有任何效果。ldapsearch 有效,但我无法使用“id”和“getent”命令登录或测试。与手册的唯一区别是我没有 ldap 管理员帐户并且没有指定它,但我认为这不会破坏其余部分。感谢有关如何排除 PAM 和 ldap 客户端故障的任何建议

cat /etc/nsswitch.conf 
passwd: files ldap
group: files ldap
shadow: files ldap
gshadow:        files
. . .

cat /etc/pam.d/common-session
session [default=1]         pam_permit.so
session requisite           pam_deny.so
session required                        pam_mkhomedir.so umask=0022 skel=/etc/skel/
session required            pam_permit.so
session optional            pam_umask.so
session required    pam_unix.so 
session optional            pam_ldap.so 
session optional    pam_systemd.so 

sudo nano /etc/pam.d/common-auth
auth    required   pam_group.so use_first_pass
auth    [success=2 default=ignore]      pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]      pam_ldap.so use_first_pass
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

sudo nano /etc/pam.d/common-password
password        requisite                       pam_pwquality.so retry=3
password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha$
password        [success=1 user_unknown=ignore default=die]     pam_ldap.so use_authtok try_first_$
password        requisite                       pam_deny.so
password        required                        pam_permit.so
password        optional        pam_gnome_keyring.so

$ ldapsearch -x -H ldap://ldap.server.com -b ou=employee,o=test,c=an -LLL "(alias=test_username)" cn
dn: cn=Test User  5142,ou=employee,o=slb,c=an
cn: Test User
cn: Test User  5142

$su - test_username
No passwd entry for user 'test_username'

$ getent passwd test_username
$

标签: ldapubuntu-18.04pamldap-client

解决方案


从提供的信息可以看出,您的 LDAP 服务器工作正常,但作为 LDAP 客户端的 NSS 模块却不是这样。您应该检查它是否/etc/ldap.conf包含正确的搜索库和 LDAP 服务器 URI。或者,您可以运行sudo dpkg-reconfigure ldap-auth-config以进行交互式编辑。

PAM 似乎配置正确。如果没有,它总是可以通过交互式实用程序修复pam-auth-update

此外,您遵循的所有指南都建议您安装libnss-ldap实现。如果您要使用桌面版 Ubuntu,请注意systemd-logind和之间存在已知问题libnss-ldap。解决方案是使用较新的包libnss-ldapd。有关详细信息,请参阅此答案


推荐阅读