cn = config do OpenLDAP adiciona um usuário separado para replicação de “olcDatabase = {0} config, cn = config”

0

Espero não estar fazendo uma pergunta idiota. Eu sou novo em criar meu próprio serviço LDAP.

Para meu banco de dados mdb normal, é fácil adicionar vários administradores. Como contém um atributo olcSuffix , é possível adicionar uma nova UO, adicionar regras olcAccess e tudo, para que a replicação possa ser configurada para usar um usuário dedicado.

Mas não encontrei uma maneira de fazer algo semelhante ao replicar a configuração:

olcDatabase={0}config,cn=config

Não consigo adicionar ous ao cn=config dn. Eu recebo o seguinte erro:

could not add entry dn="ou=admins,cn=config" (line=825)

Alguma recomendação?

ATUALIZAÇÃO 20180828

Aqui adiciono mais detalhes sobre o que tentei.

Quando tento importar, o servidor reclama:

# ldapadd -c -x -H "ldap://localhost" -D "cn=admin,cn=config" -W -f test.ldif
Enter LDAP Password:
adding new entry "ou=admins_group,dc=config"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

adding new entry "uid=u1,ou=admins_group,dc=config"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

O conteúdo do test.ldif é:

dn: ou=admins_group,dc=config
objectClass: organizationalUnit
ou: admins_group

dn: uid=u1,ou=admins_group,dc=config
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: securityPrincipal
uid: u1
cn: u1
sAMAccountName: u1
objectSid: u1
userPassword:: e1NTSEF9VVN6MVpuRmx5bWVmN2w5Tmp5WmJtb3duKzMwSEtXREc=
shadowLastChange: 15969
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1300
gidNumber: 1300
homeDirectory: /home/admin/u1

Quase o mesmo que uso para adicionar usuários ao banco de dados mdb

    
por elysch 25.08.2018 / 00:29

1 resposta

1

Esse erro específico significa que não há banco de dados com um prefixo correspondente para os DNs de suas entradas. Lembre-se de que o backend de configuração usa cn=config , não dc=config . (dc significaria que é um componente de domínio DNS que não é.)

Mas, mesmo se você acertar o prefixo, apenas receberá um erro diferente (violação do esquema). No final, cn = config não pode ter entradas estranhas, isso é imposto pelo backend.

A boa notícia é que a conta de usuário não tem para estar sob cn = config, pode estar em qualquer lugar em qualquer banco de dados. Nem as regras syncrepl nem olcAccess se importam nem um pouco com o sufixo DN que seus usuários têm, então apenas adicione a conta ao seu banco de dados mdb principal - ou reutilize a existente.

Por exemplo, esta é minha própria configuração:

dn: olcDatabase={0}config,cn=config
olcAccess: {0}to dn.sub="cn=config"
  by dn="cn=Replica,ou=System,dc=example,dc=org" read
  by group="cn=Administrators,ou=Groups,dc=example,dc=org" manage
  by * none break
...

Desde que o usuário possa efetuar login no servidor, você pode listá-lo nas ACLs e usá-lo para replicação. (Certamente, certificados ou logins de SASL / Kerberos podem gerar DNs que não existem no diretório , , e ainda são perfeitamente utilizáveis.)

    
por 29.08.2018 / 00:21

Tags