【问题标题】:How to query LDAP group membership with curl?如何使用 curl 查询 LDAP 组成员身份?
【发布时间】:2017-06-14 13:23:07
【问题描述】:

我想在命令行上使用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"

不幸的是,这个调用需要相当长的时间,而且它返回了很多我不感兴趣的信息。你知道是否存在更有效的方法吗?

【问题讨论】:

    标签: curl ldap ldap-query


    【解决方案1】:

    你可以试试:

    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 命令)

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

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

    欲了解更多信息:https://docs.oracle.com/cd/E19396-01/817-7616/ldurl.html

    【讨论】:

    • 效果很好!非常感谢你!不过,我想知道一件事:上面的查询返回了许多 $USER 所属的组?
    • 如果你让...?memberOf?sub?... 它将检索用户所属的每个组。如果您不需要此信息,这就是我在第二点上说的原因:如果过滤器更改成功,请尝试仅检索 dn 以限制输出。请求类似于:ldaps://ldap.foo.com/DC=ads,DC=foo,DC=com?dn?sub?...。由于应始终返回 DN,因此不会添加任何其他信息
    • 完美!现在我明白了:)
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2012-11-30
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多