是否可以在不禁用用户帐户的情况下禁用用户的 ldap 密码?

是否可以在不禁用用户帐户的情况下禁用用户的 ldap 密码?

我们有一个集群,它使用内部 LDAP 域进行用户身份验证,而之前使用的是存储在 LDAP 中的密码。现在,我们已将登录计算机移至使用 krb5 针对外部 kdc 进行密码身份验证。如果可以,我们希望删除本地 LDAP 密码。ldap 中是否有与传统 unix auth 命令等效的命令usermod -p '!' user

答案1

对于 OpenLDAP,删除userPassword属性来自每个用户帐户。

不幸的是,没有用于管理 LDAP 用户帐户的标准命令,因此您需要ldapsearch | awk/sed/grep | ldapmodify使用 Perl/Python 编写批量更新脚本。

或者:您无需完全禁用 LDAP 密码验证,让 LDAP 服务器根据 Kerberos 验证绑定密码。当然,这不如实际的 Kerberos 身份验证 (SASL GSSAPI) 好,但如果您仍有依赖 LDAP“简单绑定”的软件,这可能会很有用。

将每个用户的userPassword属性更改为{SASL}user@REALM(包含他们的 Kerberos 主体)将使 OpenLDAP 使用“saslauthd”守护程序(来自 Cyrus SASL)执行传递密码验证。将其配置为以 身份启动,saslauthd -a krb5它将根据您的 Kerberos KDC 验证密码。

请注意 saslauthd需要系统在其机器密钥表 (/etc/krb5.keytab) 中具有“host/”主体。

相关内容