Hallo,
ich setze gerade für meine Kumpels und mich einen Webdavshare mit LDAP-Authentifizierung auf. Soweit so gut, Authentifizierung funktioniert soweit und der Benutzer wird auch anhand seiner GID einer Gruppe zugeordnet und hat entsprechende Berechtigungen:
===============================================================
Auszug aus der httpd.conf (Funktioniert so / Rechte anhand GID)
===============================================================
<Directory /var/www/html/DAV/Foo>
DAV On
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
LDAP_Debug On
LDAP_Server localhost
LDAP_Port 389
LDAP_Protocol_Version 3
Base_DN "ou=accounts,dc=foo,dc=de"
UID_Attr uid
Group_Attr gidNumber
SupportNestedGroups On
AuthAuthoritative Off
AuthName "Webdav Foo"
AuthType Basic
BrowserMatch "^davfs2" redirect-carefully
<Limit HEAD GET POST OPTIONS PROPFIND>
Require gidNumber 515 555 556
</Limit>
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Require gidNumber 515
</Limit>
</Directory>
======================
Problem Sekundärgruppe
======================
Wenn ich jedoch den Share anhand der Gruppenzugehörigkeit (Sekundärgruppe) freigeben will, funktioniert das ganze leider nicht (Auszug aus dem error_log):
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1083) ]- mod_auth_ldap v2.12 (compiled with OpenLDAP TLS) url: http://muquit.com/
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1096)] - LDAP server=localhost,Port=389
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1214)] - Using already open ldap connection: 8ff99a8, pid=18539
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1249)] - you didn't compile with iPlanet C SDK, connect timeout will not be available
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (749) ] - Using LDAP filter: (uid=admin_demo)
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1351)] - Bind attempt# 1, pid=18539,User DN: uid=admin_demo,ou=accounts,dc=foo,dc=de
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1932)] - ldap attribute=group
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1973)] - Group_Attr=memberUid
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (1977)] - Group DN:cn=foo_admin,ou=groups,dc=foo,dc=de
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c] 1994 - user "admin_demo" does not belong to group "cn=foo_admin,ou=groups" directly
[Mon Nov 28 11:44:12 2005] [error] [client 99.99.99.99] [mod_auth_ldap.c (2101)] - user "admin_demo" is not allowed
>>>>
>>>> D.h. aus meiner Sicht: Der Benutzer wurde anhand seiner credentials indentifiziert, konnte jedoch nicht der/einer Gruppe zugeordnet werden.
>>>>
================================================================================
Auszug aus der httpd.conf (Funktioniert nicht/ Rechte anhand der Sekundärgruppe)
================================================================================
<Directory /var/www/html/DAV/Foo>
DAV On
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
LDAP_Debug On
LDAP_Protocol_Version 3
Bind_Tries 5
LDAP_Server localhost
LDAP_Port 389
Base_DN "dc=foo,dc=de"
UID_Attr uid
Group_Attr memberUid
SupportNestedGroups Off
AuthAuthoritative Off
AuthName "Webdav Foo"
AuthType Basic
BrowserMatch "^davfs2" redirect-carefully
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Require group "cn=foo_admin,ou=groups"
</Limit>
</Directory>
====================
Beispieluser im LDAP
====================
# admin_demo, accounts, foo, de
dn: uid=admin_demo,ou=accounts,dc=foo,dc=de
userPassword:: XXXXXXXXXXXXXX
phpgwAccountType: u
uidNumber: 527
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: phpgwAccount
phpgwAccountLastLogin: 1132939704
phpgwAccountLastLoginFrom: 99.99.99.99
cn: Alfred Adimer
uid: admin_demo
sn: Adimer
givenName: Alfred
homeDirectory: /var/www/DAV/Foo/admin_demo
loginShell: /bin/false
phpgwAccountStatus: A
phpgwAccountExpires: -1
gidNumber: 515
==================================
Beispiel der entsprechenden Gruppe
==================================
# foo_admin, groups, foo, de
dn: cn=foo_admin,ou=groups,dc=foo,dc=de
userPassword:
phpgwAccountType: g
phpgwAccountExpires: -1
objectClass: top
objectClass: posixGroup
objectClass: phpgwAccount
cn: foo_admin
gidNumber: 555
description: phpgw-created group
memberUid: admin_demo
>>>>>
>>>>> Warum kann mod_auth_ldap den User nicht in der Gruppe finden?
>>>>>
Gruss Wallace