遠くから始めます。
LDAP にバインドする場合、バインド DN を指定する必要があります。Active Directory では完全な DN (例: cn=Administrator) の代わりに rdn を指定できますが、他の LDAP サーバーでは必ずしもそうする必要はありません。また、RDN は 以外の場合もありcn
ます。FreeIPAuid
では属性が使用されます。使用する代わりに、cn=admin
完全な DN を指定する必要がありますuid=admin,cn=users,cn=accounts,dc=example,dc=com
。次の方法で、常にユーザーの DN を取得できますipa user-find --raw --all --pkey-only <user>
。
$ ipa user-find --raw --all --pkey-only admin
--------------
1 user matched
--------------
dn: uid=admin,cn=users,cn=accounts,dc=example,dc=com
uid: admin
----------------------------
Number of entries returned 1
----------------------------
ただし、管理者の完全な DN を知っていても、スキーマの更新には役立ちません。FreeIPA の LDAP サーバーは内部的にアクセス制御を使用しており、ディレクトリ マネージャー以外の人物によるスキーマの変更を防止しています。Directory manager は完全な DN を持つ特別なアカウントであるcn=Directory Manager
ため、それを使用してスキーマの更新をインポートする必要があります。
ただし、スキーマの配布に直接 ldapmodify を使用しないことをお勧めします。FreeIPA には ipa-ldap-updater というツールがあり、スキーマだけでなく、新しいエントリの追加や既存のエントリの変更など、更新を配布するための優れた方法を提供します。新しいエントリを追加する方法や構成を変更する方法の詳細については、こちらのブログ記事を参照してください。
スキーマ ファイルの場合、NN は 00 ~ 90 の数字であるという名前のファイルを作成し、NNname.ldif
どこかに配置します。FreeIPA は/usr/share/ipa/
スキーマ ファイルと/usr/share/ipa/updates
ストック アップデート ファイルを使用しており、そこでどのように見えるかを学ぶこともできます。次に実行するipa-ldap-updater --schema-file NNname.ldif
と、スキーマがインストールされます。その他の詳細については、ipa-ldap-updater のマニュアル ページを参照してください。
スキーマの ipa-ldap-updater 構文は 389-ds スキーマ ファイルに従うため、スキーマ定義は次のようになります。
dn: cn=schema
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
NAME 'favoriteColorName'
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
X-ORIGIN 'Extending FreeIPA' )
attributeTypes または objectClasses の値は、標準の LDIF 形式の構文に従う必要があります。単一の値を複数の行に分割する場合は、継続行の前にスペースを追加する必要があります (上記のように)。