即时使用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语言,或者更好的是我需要运行哪些查询来获取给定用户的组/角色
答案 0 :(得分:0)
使用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文档中的exmaples和man页面会有所帮助。
openLDAP文档有一些很好的信息,认为它没有很好地呈现,并且很难找到。请记住,有许多不同类型的LDAP具有不同的功能和约定。了解您的工作类型也可能有所帮助。