[Owncloud] Users LDAP storage related issues

Arthur Schiwon blizzz at owncloud.com
Wed Feb 29 19:46:44 UTC 2012


On Tuesday 28 February 2012 14:27:36 Aleksander Machniak wrote:
> While configuring ownCloud to use LDAP as user database we've found a
> lot of issues with sharing and LDAP. Here are some thoughts. We've made
> tests two months ago using git version, so maybe something's changed
> since then?
Thank you for your tests! I like to address your points and give some updates:

> - Authenticating against LDAP does not create the owncloud equivalent of
> a user account, and therefore sharing with permissions is not working,
These are two different things. Sharing with permissions is not dependent on 
local accounts. Is there another reason for them?

However, you can have it working :) master has kind of some troubles because 
of a construction site in another aspect, but you can use stable branch and 
enhance it. This is clearly a candidate for the next maintenance release:
Stable branch + 
current user_ldap from master + 
the database structure change from 
https://gitorious.org/owncloud/owncloud/commit/9df193f051c683fe69f9451ba07c4d34d480b76f/diffs/ca874a3ad776c9fd22c7bcbad81f493cfc551661  
+ 
current files_sharing from master (+
The fileeditor has a bug which opens writable files in readonly mode, this can 
be used by current files_texteditor from master without the spelling correction 
from 
https://gitorious.org/owncloud/owncloud/commit/30673e478672af316c057f562a8a02babdbd3160 
or maybe with the whole commit)

> - It's referring to group members by uid instead of oc_users.id, so name
> changes become difficult,
Well, we do not have an ID in the oc_users table, but LDAP users are not in 
this table anyway. Even if we would create local users, we would need to 
detect the change of a user name. 
It looks like it is not possible to see the username history in the user 
object. Thus LDAP would need to tell ownCloud which name changed. It should 
not be a problem to offer an interface therefore, the question is if the 
underlying LDAP is able to notifiy about changes or if it can be established 
easily.
ownClouds native user managment does not allow user name changes, but of 
course we cannot ignore different behaviour on other backends :)
Possibly we can add/set an identifying user attribute on LDAP, which we can 
use internally instead of the uid. 
Besides, currently it is possible to define a different attribute as user name.
We are considering to switch to IDs in one of the next releases.

> - It's referring to groups by gid instead of oc_groups.id
> (it doesn't have an id field for oc_groups nor oc_users tables, in fact)
> the oc_principals table is also referring to the uid text instead of the
> local account id,
There is no group backend for LDAP (yet). Besides, the story of groups and 
gids is the same as for users and user-ids.

> - It should use the user's bind credentials, and not the service bind
> credentials,
To perform LDAP searches? 
For Univention we create an extra LDAP-user who is able to search the LDAP, 
but has no other function. And not always every user is allowed to perform 
searches.
The thing is: we need to store the password in a way that it either can be 
computed back or directly in plain text. Thing is: if someone gets access to 
the machine, he will find out either way.
In this case is more to secure not to use user credentials, but to have  
distinct credentials therefore. Even the password can be changed every now and 
then without much trouble.
It is possible to offer the option to use user bind credentials, but i really 
dislike the idea becaues of this.

> - It attempts to create a full list of usernames for auto-completion,
> which it shouldn't do for lists of usernames can get rather large.
Meanwhile, you can specifiy the filter for the user list.
Still it can become pretty large if there are a lot of users that should have 
access to ownCloud. But you can get rid of unneeded accounts.

I would appreciate if the current LDAP backend could be tested. Yet it is not 
much different from before, besides the aspects of the extended_ldap are 
integrated and the user list filter can be configured.

Cheers
Arthur




More information about the Owncloud mailing list