Localização do esquema OpenLDAP (cn = schema, cn = config) isso existe?

1

Estamos tentando colocar uma instância do OpenLDAP em funcionamento. Eu estou usando o ApacheDS como o navegador. Quando vou criar meus objetos no banco de dados LDAP, vejo que vários objetos e atributos não se encaixam no propósito para o qual pretendo usá-los. Então, naturalmente eu quero estender o esquema.

Estou seguindo as instruções do link e vejo que há é um "caminho" cn = esquema, cn = config. Devo ser capaz de ver este caminho através do meu navegador LDAP? Sempre que eu tento me conectar a esse local, ele comete erros (diz credenciais inválidas).

O README tem o caminho "dc = maxcrc, dc = com" como padrão e o ApacheDS confirma isso e eu posso logar muito bem aqui.

Se alguém puder oferecer algumas dicas sobre a mente do OpenLDAP, agradecemos.

mj

    
por mj_ 20.08.2012 / 22:52

2 respostas

1

Não, "você" não deveria. Por padrão, somente o rootdn de "cn = config" (se definido) poderá ler o cn = config DSE.

$ sudo ldapsearch -H ldapi:/// -Y external -b cn=config olcrootdn=* olcrootdn olcaccess
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base <cn=config> with scope subtree
# filter: olcrootdn=*
# requesting: olcrootdn olcaccess 
#

# {0}config, config
dn: olcDatabase={0}config,cn=config
olcAccess: {0}to * by * none
olcRootDN: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    
por 20.08.2012 / 23:32
1

Normalmente, na sua instalação do OpenLDAP, você tem pelo menos duas árvores:

  • Um é o DIT ("árvore de informações de dados") em que você insere seus nós
  • Um é cn = config, onde as informações de configuração são colocadas (que podem ser manipuladas apenas com os mesmos comandos LDAP, já que ele próprio é configurado como um DIT!).

Normalmente, cn = config não é legível para qualquer conta do DIT (por razões óbvias, hm?). Portanto, para acessar cn = config, você normalmente usa uma conta dedicada, que é determinada pelo atributo olcRootDN do banco de dados (no meu caso, "cn = admin, cn = config"). No entanto, em algumas distros, essa conta pode não existir ou não ter uma senha inicial definida.

Para alterar isso, você faria o seguinte:

  1. Criptografar a senha com sudo slappasswd
  2. Defina a senha modificando a entrada LDAP:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,cn=config \- add: olcRootPW olcRootPW: <encrypted password>

EDIT: Deixe de fora a barra invertida na frente do traço; Eu só adicionei por razões de formatação.

    
por 01.12.2016 / 16:10

Tags