web-dev-qa-db-ja.com

openldapでスキーマを変更する方法

だから私は現在次のように見えるdebian9マシンにopenldapを新しくインストールしています

this

これは電話番号のデータベースにもなりますので、簡単にしてください。この例を使用します。データベースは、都市(通り)とこの通りに住む人々に分割されます。

次のようになります:dc = city-> ou = street-> cn = nameofperson

これまでのところ、私は最初のDCを作成しようとしています。たとえば、次のようなニューヨークです。

root@ldap-test:/etc/ldap/ldif-import# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/ldif-import/createcn.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=NewYork"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

ldifファイルは次のようになります。

dn: cn=NewYork
dc: NewYork
distinguishedName: dc=NewYork
name: NewYork
objectClass: top
objectClass: dcObject

これが機能しなかったので、別の方法を考えました。通りをnodomainに入れて、このように機能するかどうかを確認するだけですが、スキーマにdistinguishedNameとnameがないようです。デフォルトのスキーマを調べたところ、core.ldifにこれらのエントリがありますが、コメントアウトされています。

したがって、このldifをロードできません。

dn: ou=broadway,dc=nodomain
distinguishedName: ou=broadway,dc=nodomain
name: broadway
objectClass: top
objectClass: organizationalUnit
ou: broadway

root@ldap-test:/etc/ldap/ldif-import# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/ldif-import/broadway.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=broadway,dc=nodomain"
ldap_add: Object class violation (65)
        additional info: attribute 'distinguishedName' not allowed

つまり、distinguishedNameをスキーマにロードしていますが、新しいエントリの追加を示しています。

"cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
        additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.49"

/etc/ldap/slapd.d/cn=config/cn=schema/cn={*}*.ldifにも読み込まれていないので、理由がわかりません

誰かが何をすべきか知っていますか?

1
lemon
  • namecn)は一般的に使用されますが、commonNameは一般的に使用される属性ではありません。
  • distinguishedNameを追加しようとしないでください。 dnはすでにこれを処理しています。 dndistinguishedNameは同じ属性のエイリアスですが、dn操作にはldapmodifyのみを使用する必要があります。これにはldapaddが含まれます。

最初のldifが失敗している理由は次のとおりです。

  1. LDAPサーバーは、cn=NewYorknamingContextを処理するように構成されていません。 2distinguishedName属性を追加しようとしています。
  2. objectClass: dcObjectには属性がありませんname

次の理由により、2番目のldifが失敗します。

  1. DistinguishedName属性を追加しようとしています。
  2. objectClass: organizationalUnitには属性がありませんname

補足:rdnで使用されている部分を含むldap属性には、スペースを含めることができます。必要に応じて引用符を使用してください。

1
84104