On Fri, Jul 18, 2014 at 04:25:05PM -0400, Lance Reed wrote:
I am having a problem with sssd (1.9.2) and passwords expiration
against IPA v.3.0.0-37.
I have setup sssd to use IPA with LDAP not Kerberos since this is in
EC2 and I don’t want to deal with assigning tickets to each ephemeral
host. So far things are working great, with the one exception that
due to IPA using “krbPasswordExpiration” instead of “shadowExpire”
breaks the usage of expired passwords. I tried setting
“ldap_pwd_policy = mit_kerberos”, which does allow expired passwords
to be recognized, but then breaks the users ability to change
passwords. I suspect it causes sssd to use al Kerberos code paths,
which won’t work in this case. If anyone has any ideas on this I
would appreciate and feedback. Thanks in advance.
Interesting, the password change using id_provider=ldap works for me
here (I used git head for the test, but I'm not aware of any huge
changes related to LDAP password change since 1.9). I have one
suggestion, see inline, if that doesn't work, can you attach sanitized
logs of the [pam] responder and the [LDAP] backend?
example conf
[domain/LDAP]
enumerate = true
I would suggest not using enumerate=true unless there is a reason. The
cache lookups are then less predictable and SSSD can be slow with a
large directory due to refreshing the whole database on startup.
cache_credentials = True
debug_level = 9
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_schema = IPA
ldap_uri =
ldaps://ipa-use-1b.ec2.example.net
ldap_user_search_base = dc=example,dc=net
I think the ldap_user_search_base is too wide. IPA has two parallel trees
in which it stores users and groups - the "native" tree (cn=accounts,$BASE)
used by SSSD and other modern clients and by default there is also the
"compat" tree, used by legacy clients like nss_ldap or non-Linuxes. Your
search base looks like it might span both trees and then some searches
that are paranoid and check that only one result is returned might error
our.
Can you try using:
ldap_search_base = cn=accounts,dc=example,dc=net
ldap_id_use_start_tls = true
tls_reqcert = demand
ldap_tls_cacert = /etc/ipa/ca.crt
ldap_user_ssh_public_key = ipaSshPubKey
#ldap_pwd_policy = shadow
#ldap_user_shadow_expire = krbPasswordExpiration
#ldap_pwd_policy = mit_kerberos