哪些 objectClasses 与 Ubuntu Ldap 身份验证兼容

哪些 objectClasses 与 Ubuntu Ldap 身份验证兼容

我有一台运行 slapd 的 Ubuntu 服务器。我已将同一个机器配置为 ldap 客户端。只要我按照以下步骤操作,通过 LDAP 登录 Ubuntu 就可以正常工作:

  • 使用以下方式创建名为“testgroup1”的组ldapaddgroup
  • 创建名为“testuser1”的用户ldapadduser并添加到testgroup1
  • 然后,我可以使用 成功以 testuser1 身份登录服务器ssh testuser1@my-server。效果很好。

那么,问题来了:LDAP 中有许多现有条目。即使这些现有条目与“testuser1”条目位于完全相同的 OU 中,我也无法使用任何现有条目进行身份验证?

现有条目只有 objectClass=inetOrgPerson。因此我添加了 objectClass=posixAccount。但是,当我尝试使用这些条目(不是使用 ldapadduser 创建的)进行 ssh 时,我在 nslcd 的调试输出中看到了以下内容:

nslcd: [3c9869] DEBUG: ldap_simple_bind_s("cn=existinguser,ou=my-ou,dc=example,dc=com","*****") (uri="ldap://<ip address>")
nslcd: [3c9869] failed to bind to LDAP server ldap://<ip address>: Invalid credentials: Success

我看到的 ldapadduser 创建的条目和现有条目之间的唯一区别是,一个具有“Account”的结构对象类,另一个具有“inetOrgPerson”的结构对象类。

因此,我想知道是否有人知道是否需要使用“帐户”结构对象类才能登录 Ubuntu?或者有人能想到 nslcd 给出上述错误消息的其他原因吗?

答案1

我搞明白了:尽管我将 objectClass “PosixAccount” 添加到现有 LDAP 条目中,但我还需要添加两个属性:loginShell 和 homeDirectory。将这些添加到现有条目后,我就可以登录了。

相关内容