Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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