如何绑定用户并确保他们在正确的组中?

时间:2017-10-30 23:17:36

标签: ldap openldap

我认为我想要做的很简单,我想设置ldap,以便传入绑定检查密码是否正确,用户是否是特定组的成员。

运行以下查询会产生以下内容

ldapsearch -x -LLL -H ldap:/// -b uid=myname,ou=users,dc=example,dc=com dn memberof

结果

dn: uid=myname,ou=users,dc=example,dc=com
memberOf: cn=admin,ou=groups,dc=example,dc=com

我尝试了以下查询

ldapsearch -x -H "ldap://localhost" -D "(&(cn=My Name)(memberOf=cn=admin,ou=groups,dc=example,dc=com))" -W -b "dc=example,dc=com"

ldapsearch不断抛出以下错误

ldap_bind: Invalid DN syntax (34)
        additional info: invalid DN

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您的搜索查询中有两件事需要解决:

  • 过滤器部分应放在所有选项之后,并放在属性列表之前(如果有)。
  • -D选项需要一个参数, bind dn 以绑定到LDAP目录。

换句话说:ldapsearch -x -H <ldapuri> -D <binddn> -W -b <basedn> <filter>

假设你可以使用这个绑定dn cn=manager,dc=example,dc=com,你应该得到一个如下所示的查询:

ldapsearch -x -H "ldap://localhost" -D "cn=manager,dc=example,dc=com" -W -b "dc=example,dc=com" "(&(cn=My Name)(memberOf=cn=admin,ou=groups,dc=example,dc=com))"

thread