Ldap
現有 LDAP 伺服器中的 LDAP Schema 實現
我有一個使用者定義的模式,將被添加到現有的 LDAP 伺服器中。其 ldif 格式為:
dn: cn=userControl,cn=schema,cn=config 對像類:olcSchemaConfig cn: 使用者控制項 olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.1 名稱'genderAttr' DESC“性別” EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.2 名稱'dobAttr' DESC '出生日期' EQUALITY 廣義時間匹配 ORDERING generalizedTimeOrderingMatch 語法 1.3.6.1.4.1.1466.115.121.1.24) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.3 名稱'languageAttr' DESC '已知語言' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 單值) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.4 名稱'mTongueAttr' DESC '母語' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 單值) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.5 NAME'nationalityAttr DESC“國籍” EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.6 名稱'worksAtAttr' DESC 'worksAt' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.7 NAME 'qualificationAttr' DESC '資格' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.8 名稱'schoolAttr' DESC“學校” 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.9 名稱'collegeAttr' DESC '大學' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.10 名稱'addressAttr' DESC '地址' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.11 名稱'zipAttr' DESC '密碼' 語法 1.3.6.1.4.1.1466.115.121.1.27 ) 對像類(1.3.6.1.4.1.xxxxx.1.2.1 名稱'使用者控制' DESC 'RFC2798:新的自定義架構' SUP 組織人 結構 可能 ( 性別 $ dateOfBirth $ 語言已知 $ momTongue $ 國籍 $ 工作地點 $ 資格 $ 學校 $ 大學 $ 地址 $ pinCode $ contactNumber $ InterestIn) )
.schema 格式是
# userControl.schema 屬性類型(1.3.6.1.4.1.xxxxx.1.1.1 名稱'genderAttr' DESC“性別” EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.2 名稱'dobAttr' DESC '出生日期' EQUALITY 廣義時間匹配 ORDERING generalizedTimeOrderingMatch 語法 1.3.6.1.4.1.1466.115.121.1.24) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.3 名稱'languageAttr' DESC '已知語言' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 單值) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.4 名稱'mTongueAttr' DESC '母語' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 單值) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.5 NAME'nationalityAttr DESC“國籍” EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.6 名稱'worksAtAttr' DESC 'worksAt' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.7 NAME 'qualificationAttr' DESC '資格' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.8 名稱'schoolAttr' DESC“學校” 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.9 名稱'collegeAttr' DESC '大學' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.10 名稱'addressAttr' DESC '地址' 語法 1.3.6.1.4.1.1466.115.121.1.15 ) 屬性類型(1.3.6.1.4.1.xxxxx.1.1.11 名稱'zipAttr' DESC '密碼' 語法 1.3.6.1.4.1.1466.115.121.1.27 ) 對像類(1.3.6.1.4.1.xxxxx.1.2.1 名稱'使用者控制' DESC 'RFC2798:新的自定義架構' SUP 組織人 結構 可能 ( 性別 $ dateOfBirth $ 語言已知 $ momTongue $ 國籍 $ 工作地點 $ 資格 $ 學校 $ 大學 $ 地址 $ pinCode $ contactNumber $ InterestIn) )
我嘗試使用程式碼將 ldif 文件添加到 LDAP
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/userControl.ldif
但我收到一個錯誤
ldapadd:無效格式(第 5 行)條目:“cn=userControl,cn=schema,cn=config”
我已經檢查了解決方案並應用了它,但是沒有用。我仍然遇到錯誤。我已經將我的架構與其他架構和 ldif 文件與其他 ldif 文件進行了比較,我找不到任何錯誤。任何人都請幫我解決這個問題。
我的作業系統是 Ubuntu 12.04 LTS。有沒有必要補充
# 全域配置設置 dn:cn=配置 對像類:olcGlobal cn: 配置
在 ldif 文件中。我試過了。但後來我也遇到了同樣的錯誤。
坦率地說,您的整個架構是一團糟。
- 要在您的架構中定義 an
objectClass
,您需要olcObjectClasses:
一行,:
最後是 the。- 屬性列表必須是
NAME
條目列表,而不是DESC
,所以它必須是MAY ( genderAttr $ dobAttr
等等。NAME 'nationalityAttr
錯過了結束'
- 是
zipAttr
郵政編碼還是 PIN?contactNumber
並且interestedIn
根本沒有定義,而是在該olcObjectClasses
行中引用。- 任何屬性後的
Attr
後綴都是無用的。很明顯,它是一個屬性,因為它還應該是什麼?- 條目之間的空行無效。
如果你解決了這一切,你最終會得到類似下面的文件(仍然缺少聯繫人和興趣),很容易導入(替換
88888
為你的私人 OID 號碼)。dn: cn=userControl,cn=schema,cn=config objectClass: olcSchemaConfig cn: userControl olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.1 NAME 'genderAttr' DESC 'gender' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.2 NAME 'dobAttr' DESC 'dateOfBirth' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) olcAttributeTypes: (1.3.6.1.4.1.88888.1.1.3 NAME 'languageAttr' DESC 'languages known' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.4 NAME 'mTongueAttr' DESC 'motherTongue' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.5 NAME 'nationalityAttr' DESC 'nationality' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.6 NAME 'worksAtAttr' DESC 'worksAt' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.7 NAME 'qualificationAttr' DESC 'qualification' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.8 NAME 'schoolAttr' DESC 'school' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.9 NAME 'collegeAttr' DESC 'college' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.10 NAME 'addressAttr' DESC 'address' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.11 NAME 'zipAttr' DESC 'pinCode' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) olcObjectClasses: ( 1.3.6.1.4.1.88888.1.2.1 NAME 'userControl' DESC 'RFC2798: New Customized Schema' SUP organizationalPerson STRUCTURAL MAY ( genderAttr $ dobAttr $ languageAttr $ mTongueAttr $ nationalityAttr $ worksAtAttr $ qualificationAttr $ schoolAttr $ collegeAttr $ addressAttr $ zipAttr) )