[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: ACL Help Please



Hi Andrew -

I unsubscribe to the openldap-software@openldap.org, but subscribe again
today. I thought I had this ACL figured out.

I'm trying to have users be able to add entries and to access their own
address book. I think I have a pretty good start so far, but I'm having
difficulty adding entries that only authenticated users have access to. I
can add entries using "cn=root,dc=university,dc=edu" without any problems.
Right now I have two users, but I'm confused as to how I get entries into
their address book. Attached are both my init.ldif, and the slapd.conf I'm
using.

Any help is appreciated.

My init.ldif

#
# Initialize the suffix entry defined in slapd.conf
#
dn: dc=University,dc=edu
objectclass: top
objectclass: dcObject
objectclass: organization
dc: university
o: office

#
# Initialize the AddressBooks heirarchy
#
dn: ou=AddressBooks,dc=University,dc=edu
objectclass: top
objectclass: organizationalUnit
ou: AddressBooks

#
# Define individual address books
#
dn: o=me,ou=AddressBooks,dc=University,dc=edu
objectclass: top
objectclass: organization
o: me

dn: o=you,ou=AddressBooks,dc=University,dc=edu
objectclass: top
objectclass: organization
o: you

#
# Initialize the Users heirarchy
#
dn: ou=Users,dc=University,dc=edu
objectclass: top
objectclass: organizationalUnit
ou: Users

#
# Define individual users
#
dn: cn=me,ou=Users,dc=University,dc=edu
objectclass: top
objectclass: person
cn: me
sn: Person
userPassword: {crypt}XXXXXXX

dn: cn=you,ou=Users,dc=University,dc=edu
objectclass: top
objectclass: person
cn: you
sn: Lastname
userPassword: {crypt}XXXXXXX


My slapd.conf...

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /usr/local/var/run/slapd.pid
argsfile        /usr/local/var/run/slapd.args

# Load dynamic backend modules:
# modulepath    /usr/local/libexec/openldap
# moduleload    back_bdb.la
# moduleload    back_ldap.la
# moduleload    back_ldbm.la
# moduleload    back_passwd.la
# moduleload    back_shell.la

# Sample security restrictions
#       Require integrity protection (prevent hijacking)
#       Require 112-bit (3DES or better) encryption for updates
#       Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#       Root DSE: allow anyone to read it
#       Subschema (sub)entry DSE: allow anyone to read it
#       Other DSEs:
#               Allow self write access
#               Allow authenticated users read access
#               Allow anonymous users to authenticate
#       Directives needed to implement policy:
#
#
# Allow users to authenticate
access to attrs=userPassword
        by self write
        by anonymous auth

# Allow authenticated users access to their own address book
access to dn.regex="o=(.+),ou=AddressBooks,dc=University,dc=edu"
        by users.expand="cn=$1,ou=Users,dc=University,dc=edu" write

# Allow authenticated users to read the resource to which
# they have access by logging in with an empty Bind DN
access to dn.base="ou=AddressBooks,dc=University,dc=edu" by * read
access to dn.base="" by * read

# Allow authenticated users to read the Subschema of the
# resources to which they have access
access to dn.base="cn=Subschema" by * read

# Disallow anonymous access (binds)
# With this policy in effect, unathenticated users receive a response of
#   Error 48: Inappropiate authentication
disallow bind_anon
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database        bdb
suffix          "dc=University,dc=edu"
rootdn          "cn=root,dc=University,dc=edu"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory       /usr/local/var/openldap-data
# Indices to maintain
index   objectClass     eq


Thanks
-------------------
david stackis
uc santa barbara