1

新しいスキーマを FreeIPA に追加しようとしています。「ldapmodify」コマンドを使用する必要がある新しいスキーマを追加するには、チュートリアル「 FreeIPA サーバーの拡張」に従っています。しかし、私はこの結果を得ます:

[root@rnddomain schema]# ldapmodify -D "cn=admin" -W -f favorateColorName.ldif
Enter LDAP Password: 
ldap_bind: No such object (32)

多くの人がこのトピックについてすでに質問していることは知っていますが、彼らの答えはどれも私の問題を解決していません. これは私が追加しようとしているスキーマです:

dn: cn=schema
changetype: modify
add: attributeTypes
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' )
4

1 に答える 1

4

遠くから始めます。

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 形式の構文に従う必要があります。単一の値を複数の行に分割する場合は、継続行の前にスペースを追加する必要があります (上記のように)。

于 2015-05-09T13:43:12.737 に答える