openldapで独自の属性を生成中に問題が発生しました。

openldapで独自の属性を生成中に問題が発生しました。

私自身のプロパティ(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

関連情報