如何绑定用户并确保他们在正确的组中?
How to bind a user and ensure they are in the correct group?
我想我要做的很简单,我想设置 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
我做错了什么?
您的搜索查询中有 2 个问题需要解决:
- filter 部分应放在所有选项之后和 attributes 列表之前(如果有的话)。
- -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))"
我想我要做的很简单,我想设置 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
我做错了什么?
您的搜索查询中有 2 个问题需要解决:
- filter 部分应放在所有选项之后和 attributes 列表之前(如果有的话)。
- -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))"