私自身のプロパティ(dateOfExpire - 一般化された時間など)を作成し、このプロパティを私のObjectClass(ドミトリーなど)に追加し、ObjectClassと共に既存のスキーマinetorgpersonにこのプロパティを追加するのに問題があります。
これが私がinetorgperson.ldifファイルに追加したものです。
olcAttributeTypes: ( 2.5.18.1 NAME 'dateOfExpire' DESC 'RFC4512: indicated the date of account expiry' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SINGLE-VALUE USAGE directoryOperation SUBSTR cas eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
これをinetorgperson.schemaファイルに追加します。
attributetype ( 2.5.18.1 NAME 'dateOfExpire'
DESC 'RFC4512: indicated the date of account expiry'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
SINGLE-VALUE
USAGE directoryOperation )
objectclass ( 2.5.6.6.1 NAME 'dormitory'
DESC 'RFC2256: a person'
SUP person
STRUCTURAL
MUST ( sn $ cn $ dateOfExpire $ name $ uid )
MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
次に、次のコマンドを使用してこのスキーマを追加します。
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
ただし、次のエラーのみが発生します。
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: "2.5.18.1" is operational
答え1
属性を操作可能としてマークしたため、USAGE directoryOperation
エラーが発生します。
ユーザーは動作属性を変更しないでください。一部のイベントに応じて更新するには、OpenLDAPで実行されるコードが必要です。
また、inetOrgPersonなどの標準スキーマを変更しないことをお勧めします。独自のスキーマを作成する必要があります。
答え2
各属性タイプとオブジェクトクラスには一意のOIDを割り当てる必要があります。
OIDを再利用しています。2.5.18.1標準属性に割り当てられるタイムスタンプの生成。
OIDも使用しました。2.5.6.6.1これは他の人がOIDを割り当てることができるため、使用しないでくださいOIDアークです。
また見なさい:OpenLDAP FAQ:各スキーマエントリにOIDを割り当てる必要がありますか?
あなたのオブジェクトクラス寮親切にSTRUCTURAL
。既存のアイテムに追加できません。代わりに種類を使用してくださいAUXILIARY
。