
由於各種原因,我已成為工作場所事實上的 LDAP 管理員。我已經在工作中學習它大約一年了。因此,當我描述事情時,請隨意提出更好的做事方法。
我有一個 Novell eDirectory,用於儲存員工資訊。但我也將它用作新員工目錄的後端。我認為複製資料沒有任何意義,因為它已經被複製了。另外,員工目錄聽起來正是 LDAP 的用途。
我為每個辦公室建立了條目,然後為每個使用者設定一個屬性,引用其辦公室的辦公室條目的 DN。我現在遇到的問題是每個辦公室可能都有自己的電話號碼。因此,擁有多個辦公室的員工(例如,如果他們在多個園區工作)就有多個電話號碼。由於電話號碼跟隨員工,我不能只將號碼分配給辦公室條目。所以,我需要某種方式來表達「這個電話號碼是這個辦公室的」。
如果這是一個 MySQL 資料庫,我只需建立一個表格來映射我想要的內容。
我可以在 LDAP 中使用類似的結構嗎?或等效的方法?
為了給出我正在談論的內容的詳細範例,這裡有一個員工條目的偽 ldif:
dn: cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 555-555-5555
phone: 111-111-1111
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin
title: professor of discrete math
那麼,我該如何聯絡:
officedn: cn=DC107,ou=locations,dc=college,dc=edu
到phone: 555-555-5555
?
或?officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 111-111-1111
或?departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: professor of discrete math
等等...
一些註釋,以防萬一它們相關:
我使用 DN 語法 1.3.6.1.4.1.1466.115.121.1.12 為辦公室和部門 dn 建立了自訂屬性。
部門條目具有 objectClasses groupOfNames、nestedGroupAux 和 Top。
辦公室具有 objectClasses:自訂 objectClass,包含其父校園條目、ndsLoginProperties、organizationalPerson、Person 和 Top 的自訂 dn 引用。
使用者條目與office相同,加上posixAccount。
我還需要提供其他資訊嗎?
編輯以解決評論太短的問題:
如果我建立另一個包含元資訊的條目,如中所述https://serverfault.com/a/500129/99647我需要為每個電話號碼和每個職位建立一個元條目。
dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu officedn: cn=MAIN222,ou=locations,dc=college,dc=edu phone: 111-111-1111 departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu title: professor of discrete math departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu title: web systems admin
行不通,因為電腦無法弄清楚網路系統管理員不喜歡數學,但確實喜歡數學。
在發布問題之前,我想到的方法類似於為所有元數據創建一個 ou:ou=metadata,dc=college,dc=edu
然後為每個用戶創建一個 ou:ou=userid,ou=metadata,dc=college,dc=edu
然後為每個職位和電話號碼創建一個條目,將他們連結到其部門和辦公室:
``` dn:cn=職位,ou=用戶id,ou=元數據,dc=學院,dc=edu 辦公室dn:cn=DC107,ou=位置,dc=學院,dc=edu 電話:555-555- 5555
dn: cn=電話號碼,ou=用戶ID,ou=元資料,dc=學院,dc=edu 辦公室dn: cn=MAIN222,ou=位置,dc=學院,dc=edu 電話: 111-111-1111 ` ``
我希望有一種比這更乾淨的方法來完成我想要的事情。
答案1
為什麼不為每個職位創建一個對象,在同一對像中包含 officedn 和相關資訊?
所以:
dn: cn=DC107,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
phone: 555-555-5555
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin
dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 111-111-1111
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: professor of discrete math
這樣,您就可以將與單一位置相關的所有欄位保留在一個物件中,而使用者的物件就是容器。這將使搜尋和處理任意數量的位置變得非常簡單。