Cn = confを介してOpenLDAPにスキームを追加しました。このスキームはWSO2Identity Serverから取得されましたが、cn = confおよびOpenLDAPに適用されるように変更されました。
スキームはエラーなしでロードされましたが、機能しません。ロードされたすべてのスキームについてcn = schemas、cn = confをクエリした後、私のスキームには、スキームの名前と内容を定義するolcObjectClassesステートメントがないことがわかりました。これは私が(エラーなしで)ロードしたLDIFファイルの一部でしたが、何らかの理由でライブconfに存在しません。
事後に追加しようとしていますが、エラーが発生します:
ldapmodify: invalid format (line 5) entry: "cn={4}wso2Person,cn=schema,cn=config"
ロードしようとしているファイルは次のようになります。
dn: cn={4}wso2Person,cn=schema,cn=config
changetype: modify
add: olcObjectClasses
olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
NAME 'wso2Person'
DESC 'wso2Person'
SUP inetOrgPerson
STRUCTURAL
MAY ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $ url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $ prefferedLanguage)
)
クエリを実行する場合:ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config
私のスキームに関するセクションは次のようになります:
# {4}wso2Person, schema, config
dn: cn={4}wso2Person,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {4}wso2Person
olcAttributeTypes: {0}( 1.3.6.1.4.1.37505.1.2 NAME 'gender' EQUALI
TY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.
1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {1}( 1.3.6.1.4.1.37505.1.3 NAME 'country'
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {2}( 1.3.6.1.4.1.37505.1.4 NAME 'nickName' EQUA
LITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {3}( 1.3.6.1.4.1.37505.1.5 NAME 'timeZone'
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {4}( 1.3.6.1.4.1.37505.1.6 NAME 'dateOfBirth'
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {5}( 1.3.6.1.4.1.37505.1.7 NAME 'role' EQUALITY
caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.
4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {6}( 1.3.6.1.4.1.37505.1.8 NAME 'im' EQUALITY
caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {7}( 1.3.6.1.4.1.37505.1.9 NAME 'url' EQUALITY
caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {8}( 1.3.6.1.4.1.37505.1.10 NAME 'otherPhone'
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {9}( 1.3.6.1.4.1.37505.1.11 NAME
'privatePersonalIdentifier' EQUALITY caseIgnoreMatch SUBSTR
caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {10}( 1.3.6.1.4.1.37505.1.12 NAME
'profileconfiguration' EQUALITY caseIgnoreMatch SUBSTR
caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {11}( 1.3.6.1.4.1.37505.1.13 NAME
'prefferedLanguage' EQUALITY caseIgnoreMatch SUBSTR
caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
私は何が間違っているのですか?
私はそれを解決しました。
OlcObjectClasses:の後のすべては、1行として読み取る必要がありますが、そうではありませんでした。これは、ldifファイルの行の間隔が空いていたためです。以下は作業ファイルです。 (行の前にスペースを追加すると、前の行の続きであることを示します)
dn: cn={4}wso2Person,cn=schema,cn=config
changetype: modify
add: olcObjectClasses
olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
NAME 'wso2Person'
DESC 'wso2Person'
SUP inetOrgPerson
STRUCTURAL
MAY ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $
url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $
prefferedLanguage))
残りのスキームを追加したときに読み取られなかった理由は、不適切な場所での余分な改行が原因でした。 olcObjectClassesの追加と残りのLDIFコンテンツの間に空の行がありました。以下のse。
[..]
olcAttributeTypes: {11}( 1.3.6.1.4.1.37505.1.13 NAME
'prefferedLanguage' EQUALITY caseIgnoreMatch SUBSTR
caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
[...]