Clojure 查询用户所属的ldap组

Clojure 查询用户所属的ldap组,clojure,ldap,Clojure,Ldap,im使用clj-ldap.client.get 在这里,我尝试了用户查询的各种变体,但不知道ldap语言,也找不到任何能够很好地解释它的东西 我试过了 "cn=<username> , cn=User, dc=google, dc=co, dc=uk" “cn=,cn=User,dc=google,dc=co,dc=uk” 到目前为止,这种情况只出现了 "googlesecretq": "25", "authpassword;orclcommonpwd": "<pass

im使用clj-ldap.client.get

在这里,我尝试了用户查询的各种变体,但不知道ldap语言,也找不到任何能够很好地解释它的东西

我试过了

"cn=<username> , cn=User, dc=google, dc=co, dc=uk"
“cn=,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>"
“googlesecretq”:“25”,
“authpassword;orclcommonpwd”:”,
“uid”:“,
“邮件”:“@google.co.uk”,
“dn”:“cn=,cn=用户,dc=谷歌,dc=co,dc=uk”,
“对象类”:[
],
“序号”:“编号”,
“用户密码”:“”,
“cn”:“,
“givenname”:”

因此,任何人都可以告诉我在哪里学习ldap语言,或者更好地说,我需要运行什么查询来获取给定用户的组/角色,这在很大程度上取决于安装了什么模式对象,有些则取决于谁设置/配置了系统。没有一个单一的标准。例如,我使用cljldap处理的LDAP使用cn=,ou=People,dc=example,dc=com,组在cn=groups,dnexample,dncom中。一些模式,如posix或nis模式,对于如何定义组有相当明确的定义,但人们通常也定义自己的模式对象。了解服务器用户使用的模式对象肯定有助于缩小可能的候选对象范围

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

ldapsearch附带的文档(可在大多数Linux系统上使用)非常擅长解释ldap搜索语法的工作原理。它有点“笨重”,一开始看起来很奇怪,但实际上非常直截了当——查看ldapsearch文档和手册页中的Exmaple会有所帮助


openLDAP文档提供了一些很好的信息,尽管它的表现不是很好,而且很难找到东西。请记住,有许多不同类型的LDAP具有不同的特性和约定。了解你的工作对象可能也会有所帮助

谢谢Tim x,我认为我们的是用户,然后这些组中列出了用户。我猜我必须查询所有组,以找出特定用户所属的组,这听起来对吗?根据您的结构,您可能可以查询特定组的所有成员,或者查询查看某个人所属的组。ldapsearch语法是用于clj ldap的语法,因此您应该能够使用ldapsearch计算出搜索的基本格式,然后将其转换为clojure。但是,您确实需要知道格式化该查询的结构。