Configuring ldap client authentication using authconfig

Posted on

Hello there,

I like to configure a RHEL 7 system to use ldap based client authentication with the authconfig tool.

At first i tested the connection and availability of my ldap server with ldapsearch:

ldapsearch -v -h hostname -y /root/passwdfile -D "cn=stringA,ou=stringB,o=stringC,o=stringD,o=stringE" -b "o=stringC,o=stringD,o=stringE" "(uid=john)"

This query returned the expected result:

filter: (uid=john)
requesting: All userApplication attributes
# extended LDIF
#
# LDAPv3
# base <o=stringC,o=stringD,o=stringE> with scope subtree
# filter: (uid=john)
# requesting: ALL
#

# john, people, stringC, stringD, stringE
dn: uid=john,ou=people,o=StringC,o=stringD,o=stringE
uidNumber: 123456
loginShell: /usr/bin/bash
homeDirectory: /home/john
gecos:: IErDtnJnIEthc3RuaW5nLFVIUlosLDA=
gidNumber: 101
cn: john
sn: john
uid: john
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
objectClass: shadowAccount
objectClass: organizationalPerson
objectClass: person

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

In the second step I used authconfig to configure my system for using ldap authentication:

authconfig --enableldap --enableldapauth --ldapserver="ldap://ldapbackend.example.com" --ldapbasedn="o=stringC,o=stringD,o=stringE" --update

After that the configuration looks like as follows:

authconfig --enableldap --enableldapauth --ldapserver="ldap://ldapbackend.example.com" --ldapbasedn="o=stringC,o=stringD,o=stringE" --test
caching is disabled
nss_files is always enabled
nss_compat is disabled
nss_db is disabled
nss_hesiod is disabled
 hesiod LHS = ""
 hesiod RHS = ""
nss_ldap is enabled
 LDAP+TLS is disabled
 LDAP server = "ldap://ldapbackend.example.com"
 LDAP base DN = "o=stringC,o=stringD,o=stringE"
nss_nis is disabled
 NIS server = ""
 NIS domain = ""
nss_nisplus is disabled
nss_winbind is disabled
 SMB workgroup = ""
 SMB servers = ""
 SMB security = "user"
 SMB realm = ""
 Winbind template shell = "/bin/false"
 SMB idmap range = "16777216-33554431"
nss_sss is enabled by default
nss_wins is disabled
nss_mdns4_minimal is disabled
DNS preference over NSS or WINS is disabled
pam_unix is always enabled
 shadow passwords are enabled
 password hashing algorithm is sha512
pam_krb5 is disabled
 krb5 realm = ""
 krb5 realm via dns is disabled
 krb5 kdc = ""
 krb5 kdc via dns is disabled
 krb5 admin server = ""
pam_ldap is enabled
 LDAP+TLS is disabled
 LDAP server = "ldap://ldapbackend.example.com"
 LDAP base DN = "o=stringC,o=stringD,o=stringE"
 LDAP schema = "rfc2307"
pam_pkcs11 is disabled
 use only smartcard for login is disabled
 smartcard module = ""
 smartcard removal action = ""
pam_fprintd is disabled
pam_ecryptfs is disabled
pam_winbind is disabled
 SMB workgroup = ""
 SMB servers = ""
 SMB security = "user"
 SMB realm = ""
pam_sss is disabled by default
 credential caching in SSSD is enabled
 SSSD use instead of legacy services if possible is enabled
IPAv2 is disabled
IPAv2 domain was not joined
 IPAv2 server = ""
 IPAv2 realm = ""
 IPAv2 domain = ""
pam_pwquality is enabled (try_first_pass local_users_only retry=3 authtok_type=)
pam_passwdqc is disabled ()
pam_access is disabled ()
pam_mkhomedir or pam_oddjob_mkhomedir is disabled (umask=0077)
Always authorize local users is enabled ()
Authenticate system accounts against network services is disabled

My /etc/nsswitch.conf shows the following entries:

passwd:     files sss ldap
shadow:     files sss ldap
group:      files sss ldap

But when I try to id the user used in the ldapsearch the user could not be found:

id john
id: john: no such user

I'm very new to ldab based client authentication and followed the section authconfig in the System-Level Authentication Guide. I do not see any errors in the journal or /etc/messages that give me a hint what's wrong here.

I appreciate if someone could give my some good advice on how to get ldap based configuration up and running.

Kind regards,
Joerg K.

Responses