ldap_modify: Accès insuffisant (50)

9

J'utilise un serveur OpenLDAP 2.4 qui utilise le service SSL pour la communication. Cela fonctionne pour les recherches.

J'essaie d'ajouter la réplication en mode miroir.

Voici donc la commande que j'exécute:

ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif

Où c'est mon server_id.ldif:

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2

et voici mon cn \ = config.ldif dans l'arborescence slapd.d des fichiers texte:

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z

Mais malheureusement, je reçois ceci:

Enter LDAP Password: 
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

Si j'essaye de spécifier la base de données de configuration j'obtiens ceci:

ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)}

Quelqu'un sait-il comment ajouter le serverID à la base de données de configuration pour que je puisse terminer la configuration du mode miroir?

Lynn Owens
la source

Réponses:

10

C'est exactement ce qui est dit sur l'étain. Votre nom distinctif cn=myuser,dc=mydomain,dc=comn'a pas suffisamment d'autorisations pour modifier l' cn=configarborescence. Et lorsque vous essayez de "spécifier la base de données de configuration", vous utilisez un nom distinctif entièrement différent cn=myuser,cn=config, qui apparemment n'existe pas ou vous utilisez un mauvais mot de passe.

Pour effectuer de telles modifications, vous devez travailler avec un compte suffisamment privilégié pour modifier les différentes bases de données. Le compte "admin", c'est-à-dire le seul compte qui a toujours tous les privilèges, est spécifié dans l'attribut olcRootDNet son mot de passe se trouve dans olcRootPW. Pour la cn=configbase de données, ces attributs se trouvent dans olcDatabase={0}config,cn=configet pour la base de données "régulière", généralement de type HDB, dans olcDatabase={1}hdb,cn=config.

Quel didacticiel ou documentation avez-vous suivi? Il ne semble pas que vous compreniez complètement ce que vous faites ici.

daff
la source
Hmm, j'utilise déjà le compte olcRootDN. -D "cn = myuser, dc = mydomain, dc = com" est mon remplacement de "cn = Manager, dc = example, dc = com" ... J'ai remplacé Manager par myuser pour des raisons de sécurité. Je m'attendais à ce que ça marche. Je pense que je dois spécifier serverID à un niveau supérieur à celui des bases de données, ... dans la configuration de base de slapd elle-même, que je m'attendrais à trouver dans cn = config.ldif, pas dans olcDatabase \ = \ {1 \} hdb.ldif où l'on trouve l'olcRootDN.
Lynn Owens
Si vous obtenez un "accès insuffisant", vous n'utilisez pas l'utilisateur administrateur configuré dans olcRootDNet olcRootPW. Cet utilisateur a toujours accès à tout, par définition. Encore une fois, sachez que les différentes bases de données ont des utilisateurs administrateurs différents. Pour l' cn=configarbre, utilisez celui spécifié sous olcDatabase={0}config,cn=config. Et non, les olcServerIDattributs ne appartiennent dans le cn=configDN. C'est là que je les ai aussi.
daff
Merci Daff, c'était tout. J'ignorais que la base de données de configuration était la base de données {0}. Il y avait en effet un utilisateur administrateur là-dedans. Je lui ai donné un mot de passe et mes modifications se sont déroulées sans problème. :)
Lynn Owens
Je serais intéressé de savoir quel tutoriel ou documentation vous recommanderiez pour vous familiariser rapidement avec ldap. Parce qu'il est clair pour moi que je n'ai absolument aucune idée de ce que je fais ..
The Lazy Coder
1
@TheLazyCoder La documentation officielle est complète mais peu accessible aux novices. Les documents Ubuntu OpenLDAP se sont améliorés au fil du temps et pourraient être assez bons pour un débutant. A part cela, j'ai beaucoup appris du livre de Matt Butcher "Mastering OpenLDAP", publié par Packt. Vous voudrez peut-être commencer par là, même si c'est un peu daté maintenant.
daff
7

Comme j'avais un problème assez similaire, j'ai essayé une solution intéressante mais sans résultat. Contrairement à Lynn Owens, je n'ai pas réussi à ajouter un mot de passe à l'administrateur dans olcDatabase={0}config,cn=config. J'ai finalement réussi à modifier mes cn=configcommandes en utilisant comme:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif
phep
la source
Cela fonctionne, en particulier le "-Y EXTERNAL -H ldapi: ///", car cn = admin, dc = ... qui a été créé initialement n'a pas accès pour effectuer ces modifications de niveau inférieur.
naisanza
1
Si cela ne fonctionne pas du premier coup, rappelez sudo-vous que c'est votre ami
ratskin