ldap groups and ptloader
Duncan Gibb
Duncan.Gibb at SiriusIT.co.uk
Thu May 27 06:38:44 EDT 2010
Jos De Graeve wrote:
JDG> I use saslauthd to auth against ldap (bind auth) and I am trying
JDG> to use ptloader to fetch group information from LDAP so that group
JDG> based ACL's can be used for shared folders.
We have several similar systems in production.
JDG> If I look with ptdump each user is listed with the correct number
JDG> of groups he is member of, but the group name is wrong. Instead
JDG> of the group name (cn attribute) it shows some random attribute
JDG> such as another group member (a value of the memberUid attribute),
JDG> or "top" ( a value of the objectclass attribute ). Sometimes, the
JDG> group name is correct.
JDG> I am running cyrus 2.2.13, on debian lenny amd64
> auth_mech: pts
> unix_group_enable: no
> ptloader_sock: /var/run/cyrus/socket/ptsock
> ldap_base: ou=people,dc=example,dc=org
> ldap_filter: (uid=%U)
> ldap_version: 3
> ldap_sasl: 0
> ldap_size_limit: 100
> ldap_group_base: ou=groups,dc=example,dc=org
> ldap_group_scope: sub
> ldap_group_filter: cn=%u
> ldap_member_scope: sub
> ldap_member_base: ou=groups,dc=example,dc=org
> # ldap_member_method: attribute
> # ldap_member_attribute: memberUid
> ldap_member_method: filter
> ldap_member_filter: memberUid=%U
> ldap_uri: ldap://netinfo.example.org/
> pts_module: ldap
JDG> My groups are "posixGroup" with the uid's of the members listed
JDG> in the memberUid attribute, the group name is listed in the cn
JDG> attribute:
If you add
ldap_member_attribute: cn
to your config, it should work. Certainly something very similar works
on our Lenny/amd64 2.3.14++ builds:
auth_mech: pts
pts_module: ldap
ptscache_timeout: 60
ptloader_sock: /srv/imap/var/run/cyrus/socket/ptsock
ldap_uri: ldapi:///var/run/ldapi \
ldaps://ldap3.this-site.client.com \
ldaps://ldap2.this-site.client.com \
ldaps://ldap4.this-site.client.com \
ldaps://ldap1.this-site.client.com
ldap_tls_cacert_file: /etc/ssl/certs/client-ca.pem
ldap_tls_check_peer: yes
ldap_base: dc=client,dc=com
ldap_group_base: dc=client,dc=com
ldap_member_base: dc=client,dc=com
ldap_sasl: no
ldap_bind_dn: cn=this-cyrus,ou=agents,dc=client,dc=com
ldap_password: verylongrandomstring
ldap_filter:
(|(&(objectclass=gosaMailAccount)(gosaMailServer=imap.client.com)(uid=%u))(&(objectclass=simpleSecurityObject)(cn=%u)(|(cn=cyrus)(cn=spamteach))))
ldap_group_filter: (&(objectclass=posixGroup)(cn=%u))
ldap_member_method: filter
ldap_member_filter: (&(objectclass=posixGroup)(memberUid=%u))
ldap_member_attribute: cn
# size limit determines the max number of groups a user may be
# in before authentication fails
ldap_size_limit: 1024
ldap_external_ids: mupdate.client.com fe1.client.com \
fe2.client.com feN.client.com \
be1.client.com be2.client.com \
beN.client.com
JDG> The man pages are somewhat sparse on details on how the
JDG> parameters are interpreted and how they will get the ldap
JDG> information interpreted. I tried serveral variations on
JDG> the configuration file without any success.
Yes. It would be nice when someone has time to make the configuration
of pts_ldap more similar to other things likely to be using the same
data (eg pam/nss/samba as well as saslauthd).
Cheers
Duncan
--
Duncan Gibb - Technical Director
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk/ || t: +44 870 608 0063
Debian Cyrus Team - https://alioth.debian.org/projects/pkg-cyrus-imapd/
More information about the Info-cyrus
mailing list