2017-02-09 57 views
2

IM使用CLJ-ldap.client.get团体查询LDAP用户属于

,我曾尝试过各种变化对用户的查询,但不知道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语言,甚至更好,我需要运行得到什么查询给定用户的组/角色

回答

0

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

您或者需要与ldap服务器的管理员交谈,查询其中的模式对象,或者使用像ldapsearch这样的工具来浏览各种容器/树。探索方法的局限性在于您的搜索用户(您绑定的用户执行搜索)可能没有足够的访问权限来查询所有对象/树/容器。

ldapsearch附带的文档(适用于大多数Linux系统)非常适合解释ldap搜索语法的工作原理。这有点“笨重”,起初看起来很奇怪,但实际上非常简单 - 查看ldapsearch文档和手册页中的exmaples会有所帮助。

openLDAP文档有一些很好的信息,认为它没有很好地呈现,并且很难找到东西。请记住,有许多不同类型的LDAP具有不同的功能和约定。知道你的工作类型可能也有帮助。

+0

感谢Tim x,我认为我们的用户是用户,然后这些用户组中列出了用户。我猜,我将不得不查询所有群体,以找出一个有关用户在哪个组,这听起来是对的吗? – f1wade

+0

根据您的结构,您可能可以查询特定组或查询的所有成员,以查看某人是否为会员。 ldapsearch语法是您用于clj-ldap的语法,因此您应该能够使用ldapsearch制定搜索的基本格式,然后将其转换为clojure。但是,您确实需要确切知道格式化该查询的结构。 –