2017-02-09 71 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。但是,您確實需要確切知道格式化該查詢的結構。 –