Como eu instalo um novo esquema para o OpenLDAP no Debian 5 com o backend dinâmico config = cn?

6

Estou importando um banco de dados OpenLDAP de outro servidor e durante a importação, tenho alguns erros com alguns usuários, o problema é que o mozillaAbPersonAlpha não é um objectClass válido.

#!ERROR [LDAP Error Code 21 - objectClass: value #3 invalid per syntax]
...
dn: uid=somedude,cn=Whatever,dc=test,dc=com
sn: Some Dude
givenName: Dude
mail: [email protected]
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude

AFAICT Parece que minha instalação do OpenLDAP não possui um esquema para mozillaABPersonAlpha .

Mas como instalo este esquema?

EDIT: O servidor está usando o novo back-end de configuração, portanto, não há nenhum arquivo slapd.conf . Existe, em vez disso, um diretório /etc/slapd.d/ com a nomenclatura do diretório estranho (por exemplo, /etc/slapd.d/cn=config/ ).

Como adiciono o novo esquema nessa situação?

    
por Noe Nieto 21.05.2011 / 03:25

3 respostas

7

Estou respondendo a minha própria pergunta porque queria saber como resolver o problema ao usar o novo backend slapd.d/dynamic/cn=config e não queria voltar para o método slapd.conf . (Quase ninguém está fazendo isso, AFAICT)

Quando tento adicionar o novo esquema usando o 'ldapadd, sempre recebo o seguinte erro:

ldapadd -H ldap://whatever.test.com -D "cn=admin,dc=whatever,dc=test,dc=com" -x -W -f mozillaabpersonalpha.ldif
ldap_add: Insufficient access (50)

Portanto, o BindDN que eu estava usando não tem esses privilégios. Eu precisaria configurar uma ACL ou usar o rootDN para essa operação.

Eu não sei porque, mas ao configurar o pacote slapd debian, ele me permitiu criar uma conta de administrador para o meu no DIT, mas não mencionou nada sobre o rootDN . Depois de alguma navegação, encontrei este Blog que explica como definir a senha do rootDN ao usar o esquema cn=config .

Então, editamos o arquivo /etc/ldap/slapd.d/cn=config/olcDatabase\=\{0\}config.ldif e adicionamos o seguinte:

olcRootDN: cn=admin,cn=config
olcRootPW: mypassword

Eu tive que reiniciar o slapd para que as mudanças entrassem em vigor (não deveria ser necessário, mas ...). Para testá-lo, executei o seguinte comando:

ldapwhoami -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword

E funcionou! A próxima etapa foi carregar o esquema mozillaAbPersonAlpha no formato ldif usando ldapadd :

ldapadd -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword -f mozillaabpersonalpha.ldif

A resposta foi bem sucedida

adding new entry "cn=mozillaabpersonalpha,cn=schema,cn=config"

Por fim, adicionar um usuário que depende do mozillaABPersonAlpha schema agora é possível. Por exemplo, o arquivo newuser.ldif tem isso:

dn: uid=somedude,cn=Whatever,dc=test,dc=com
sn: Some Dude
givenName: Dude
mail: [email protected]
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude

E adicioná-lo ao novo diretório (não usando a conta rootDN ) funciona agora:

ldapadd -H ldap://whatever.test.com -D "cn=admin,dc=whatever,dc=test,dc=com" -x -W -f usertest.ldif 
Enter LDAP Password: 
adding new entry "uid=somedude,cn=SomeGroup,cn=whatever,dc=test,dc=com
    
por 21.05.2011 / 23:22
0

Copie e cole esse esquema em um arquivo no seu servidor e adicione:

include /path/to/that/file.schema

no seu slapd.conf e reinicie o slapd.

    
por 21.05.2011 / 03:34
0

No seu arquivo slapd.conf (5), haverá algumas instruções "include":

include         /etc/openldap/schema/core.schema

Você precisa fazer o download do arquivo de esquema e colocá-lo no diretório / schema com o restante dos que já estão lá (tudo em um local é mais simples) e alterar a configuração para incluí-lo. Em seguida, reinicie o OpenLDAP.

link

    
por 21.05.2011 / 03:37