Pages : 1
#1 Le 18/10/2022, à 16:13
- denebe
LDAP - requête ldapsearch - ACL ?
Bonjour,
je suis avec Ubuntu 22.04, je lis le livre "Mastering OpenLDAP…".
J'ai un petit répertoire pour m'exercer. Malgré être connecté (Bind), je ne comprends pas bien pourquoi une requête n'aboutit pas, alors que tout me semble configuré pour qu'elle renvoie le résultat que j'attends: lire une entrée.
Une requête qui aboutit:
thierry@thierry-VirtualBox:~$ ldapsearch -x -w myPassword -D 'uid=matt,ou=Users,dc=example,dc=com' -b 'uid=matt,ou=Users,dc=example,dc=com' -LLL -v
ldap_initialize( <DEFAULT> )
filter: (objectclass=*)
requesting: All userApplication attributes
dn: uid=matt,ou=Users,dc=example,dc=com
ou: Users
uid: matt
cn: Matt Butcher
sn: Butcher
…
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: bXlQYXNzd29yZA==
Une requête qui n'aboutit pas:
thierry@thierry-VirtualBox:~$ ldapsearch -x -w myPassword -D 'uid=matt,ou=Users,dc=example,dc=com' -b 'ou=Users,dc=example,dc=com' '(uid=matt)' -LLL -v
ldap_initialize( <DEFAULT> )
filter: (uid=matt)
requesting: All userApplication attributes
No such object (32)
Voilà mon fichier slapd.conf:
thierry@thierry-VirtualBox:/etc/ldap$ cat slapd.conf
# slapd.conf - Configuration file for LDAP SLAPD
##########
# Basics #
##########
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel stats
modulepath /usr/lib/ldap
# modulepath /usr/local/libexec/openldap
moduleload back_mdb.la
###########
# SSL/TLS #
###########
TLSCACertificatePath /etc/ssl/certs/
TLSCertificateFile /etc/ldap/example.com.cert.pem
TLSCertificateKeyFile /etc/ldap/example.com.key.pem
# SASL #
#password-hash {CLEARTEXT}
authz-policy from
authz-regexp
"^uid=([^,]+).*,cn=auth$"
"uid=$1,ou=Users,dc=example,dc=com"
##########################
# Database Configuration #
##########################
database mdb
suffix "dc=example,dc=com"
security ssf=0
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
directory /var/lib/ldap
# directory /usr/local/var/openldap-data
index objectClass,cn eq
########
# ACLs #
########
access to attrs=userPassword
by anonymous auth
by self write
by * none
access to *
by self write
by anonymous read
by * none
Dans les ACLs, si je rajoute "access * by users read", ça marche, mais alors "matt", une fois connecté ("bindé"), peut aller lire toutes les entrées dans le répertoire dc=example,dc=com, ce n'est pas ce que je recherche.
Toujours dans les ACLS, il y a "access to * by self write", si j'ai bien compris, normalement, l'utilisateur qui est connecté ("bindé"), devrait pouvoir aller lire son entrée.
En faisant référence aux exemples que j'ai fournis, cela veut dire malgré tout qu'il est nécessaire que la base de recherche contienne le DN de matt en entier (-b 'uid=matt,ou=Users,dc=example,dc=com'), c'est bien ça ?
Je trouve cela bizarre (parce que je n'ai pas bien saisi quelque chose) dans la mesure où le deuxième exemple m'affiche une erreur alors que je précise à l'aide d'un filtre que je souhaite n'afficher que l'entrée de "matt".
Qu'en pensez-vous ?
Merci à vous.
Dernière modification par denebe (Le 18/10/2022, à 23:10)
Opensuse Leap 15.6, Ubuntu 24.04
Dimensions Moebius transf.
Sésamath
Hors ligne
Pages : 1