web-dev-qa-db-ja.com

ldapaddエラー:「追加情報:objectClass:値#3構文ごとに無効」はどういう意味ですか?

私はldifを持っています

dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=local
olcPPolicyHashCleartext: TRUE

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: {1}memberof
olcMemberOfMemberAD: uniqueMember
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfRefInt: TRUE

これを使用して、次のコマンドでLDAPサーバーを構成します。

ldapadd -Y EXTERNAL -H, ldapi:/// -f /tmp/overlays.ldif
The error I'm getting is:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #3 invalid per syntax

パスワードが間違っていることが原因と思われますが、はっきりとはわかりません。私がウェブで検索したヒットは「値#2」または「値#1」でした-LDAPの専門家ではないので、これが何らかの違いをもたらすかどうかはわかりません。

ありがとう、ブルース

3
Bruce Becker

これは悪いパスワードではありません。つまり、Invalid credentials (49)です。

Invalid syntax (21)です。具体的には、objectClassの場合、存在しないobjectClassを使用しようとしていますolcPPolicyConfig)。

OpenLDAPは、objectClassが1であるマルチ属性値を0からカウントします。つまり、ldapaddは次のようになります。

value#0: top  
value#1: olcConfig  
value#2: olcOverlayConfig  
value#3: olcPPolicyConfig

olcPPolicyConfig objectClassは、libtoolライブラリppolicy.laによって提供されます。これは通常、モジュールとしてロードする必要があります。同じことがmemberOfと他のほとんどのオーバーレイにも当てはまります。

$ Sudo ldapadd -Y EXTERNAL -H ldapi:/// <<EOF
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: ppolicy.la

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: memberof.la
EOF

モジュールパスは異なる場合がありますが、上記はCentOS7の正しいパスです。

4
84104