如何使用curl查询LDAP组成员资格?

时间:2017-06-14 13:23:08

标签: curl ldap ldap-query

我想在命令行上使用curl来检查$USER是否是LDAP组$GROUP的成员。

这有效:

curl --user $CREDS \
     "ldaps://ldap.foo.com/DC=ads,DC=foo,DC=com??sub?(sAMAccountName=$USER)" \ 
   | grep -a "memberOf: CN=$GROUP,OU=Distribution,OU=Groups,DC=ads,DC=foo,DC=com"

不幸的是,该调用需要相当长的时间,并且会返回很多我不感兴趣的信息。您知道是否存在更有效的方法吗?

1 个答案:

答案 0 :(得分:4)

你可以尝试:

curl --user $CREDS \
     "ldaps://ldap.foo.com/DC=ads,DC=foo,DC=com?memberOf?sub?(&(sAMAccountName=$USER)(memberOf=CN=$GROUP,OU=Distribution,OU=Groups,DC=ads,DC=foo,DC=com))"

哪个会

  • 对于过滤器:仅检索具有sAMAccountName=$USERmemberOf=CN=$GROUP,OU=Distribution,OU=Groups,DC=ads,DC=foo,DC=com的用户(在所有用户属性上,它将使用过滤服务器端而不是grep命令)< / p>

  • 对于memberOf添加(在?sub之前),指定只需要检索memberOf属性。

    如果过滤器更改成功,请尝试仅检索dn以限制输出,因为如果未指定任何属性,则返回每个属性

有关详细信息:https://docs.oracle.com/cd/E19396-01/817-7616/ldurl.html