我想在命令行上使用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"
不幸的是,该调用需要相当长的时间,并且会返回很多我不感兴趣的信息。您知道是否存在更有效的方法吗?
答案 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=$USER
和memberOf=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