【问题标题】:query ldap for groups a user belongs to查询用户所属组的 ldap
【发布时间】:2017-02-09 13:27:56
【问题描述】:

我正在使用 clj-ldap.client.get

我尝试了各种用户查询变体,但不了解 ldap 语言,也找不到任何可以解释它的好方法。

我试过了

"cn=<username> , cn=User, dc=google, dc=co, dc=uk"

到目前为止,这只是返回

"googlesecretq": "25",
  "authpassword;orclcommonpwd": "<password>",
  "uid": "<username>",
  "mail": "<username>@google.co.uk",
  "dn": "cn=<username>, cn=Users, dc=google, dc=co, dc=uk",
  "objectclass": [
    <objects that mean nothing to me>
  ],
  "sn": "<username>",
  "userpassword": "<password>",
  "cn": "<username>",
  "givenname": "<username>"

所以有人告诉我在哪里学习 ldap 语言,或者更好的是我需要运行什么查询来获取给定用户的组/角色

【问题讨论】:

    标签: clojure ldap


    【解决方案1】:

    使用 LDAP,很大程度上取决于安装了哪些架构对象,有些取决于设置/配置系统的人做出的决定。没有一个单一的标准。例如,我使用 clj-ldap 使用的 LDAP 使用 cn=,ou=People,dc=example,dc=com 并且组位于 cn=Groups,dn-exmple,dn-com 中。一些模式,例如 posix 或 nis 模式对于如何定义组有相当清晰的定义,但人们通常也会定义自己的模式对象。了解服务器用户的模式对象当然可以帮助缩小可能的候选范围。

    您需要与您查询的 ldap 服务器的管理员之一交谈,以了解它具有哪些架构对象,或者可能使用 ldapsearch 之类的工具来探索各种容器/树。探索方法的限制是您的搜索用户(您绑定以执行搜索)可能没有足够的访问权限来查询所有对象/树/容器。

    ldapsearch 附带的文档(在大多数 Linux 系统上都可用)很好地解释了 ldap 搜索语法的工作原理。它有点“笨拙”,起初看起来很奇怪,但实际上非常简单 - 查看 ldapsearch 文档和手册页中的示例会有所帮助。

    openLDAP 文档有一些很好的信息,但认为它没有很好地呈现并且很难找到。请记住,有许多不同类型的 LDAP,它们具有不同的特性和约定。了解您使用哪种类型也可能会有所帮助。

    【讨论】:

    • 感谢 Tim x,我认为我们的用户是用户,然后组中列出了用户。我猜我必须查询所有组以找出特定用户所在的组,这听起来对吗?
    • 根据您的结构,您可能能够查询特定组的所有成员或查询以查看某人是哪个组的成员。 ldapsearch 语法是您用于 clj-ldap 的语法,因此您应该能够使用 ldapsearch 计算出搜索的基本格式,然后将其转换为 clojure。但是,您确实需要确定该查询的格式是什么结构。
    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多