Issue 6495 - nssov patch to better emulate pam_ldap behaviour
Summary: nssov patch to better emulate pam_ldap behaviour
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-22 03:41 UTC by kean.johnston@gmail.com
Modified: 2017-04-07 17:47 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description kean.johnston@gmail.com 2010-03-22 03:41:28 UTC
Full_Name: Kean Johnston
Version: HEAD
OS: Linux (CentOS 5.3)
URL: ftp://ftp.openldap.org/incoming/kean-johnston-100321.patch
Submission from: (NULL) (196.210.34.161)


The nssov manual page states that some of it's options "duplicates the original
pam_ldap authorization behavior". However, they don't quite. pam_ldap has the
ability for you to use "wildcards" in a user's host: attribute. I say
"wildcards" in quotes because the pam_ldap implementation does not actually use
regex matching, but rather check for two special strings, "*" and "!".

The ability to use actual wildcards, especially ones you can negate, on a per
user basis is extremely useful to an administrator of large networks. For
example you may want all developers to have access to the machines in
developers.mydomain.com but you want to disallow access to some of those
machines to contractors or interns.

This patch allows such behaviour, so it serves the dual purpose of actually
implementing existing pam_ldap behaviour in case people already depend on that,
as well as extends it to be a more generally usable feature by using actual
regular expressions. The code is simple, and the man page change describes it
well enough. Please consider adding this code to nssov. Thank you.
Comment 1 kean.johnston@gmail.com 2010-03-22 03:51:52 UTC
ftp.openldap.org reports no space on the device, so the URL for the patch 
is at:

http://64.34.163.232/openldap/kean-johnston-100321.patch

Comment 2 Howard Chu 2010-03-22 06:28:36 UTC
kean.johnston@gmail.com wrote:
> Full_Name: Kean Johnston
> Version: HEAD
> OS: Linux (CentOS 5.3)
> URL: ftp://ftp.openldap.org/incoming/kean-johnston-100321.patch
> Submission from: (NULL) (196.210.34.161)
>
>
> The nssov manual page states that some of it's options "duplicates the original
> pam_ldap authorization behavior". However, they don't quite. pam_ldap has the
> ability for you to use "wildcards" in a user's host: attribute. I say
> "wildcards" in quotes because the pam_ldap implementation does not actually use
> regex matching, but rather check for two special strings, "*" and "!".
>
> The ability to use actual wildcards, especially ones you can negate, on a per
> user basis is extremely useful to an administrator of large networks. For
> example you may want all developers to have access to the machines in
> developers.mydomain.com but you want to disallow access to some of those
> machines to contractors or interns.
>
> This patch allows such behaviour, so it serves the dual purpose of actually
> implementing existing pam_ldap behaviour in case people already depend on that,
> as well as extends it to be a more generally usable feature by using actual
> regular expressions. The code is simple, and the man page change describes it
> well enough. Please consider adding this code to nssov. Thank you.
>
Authorization is the job of the ACL engine. Putting ad-hoc rules into user 
entries is, in a word, stupid. It's also unscaleable and will become an 
administration nightmare.

The user host attribute functionality is deprecated. I have no desire to make 
it even vaguely appear to be useful.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

Comment 3 kean.johnston@gmail.com 2010-03-22 12:40:45 UTC
> Authorization is the job of the ACL engine. Putting ad-hoc rules into 
> user entries is, in a word, stupid. It's also unscaleable and will 
> become an administration nightmare.
Well OK then. Using a configuration mechanism like ACL's that cannot be 
distributed to multiple users (like editing a directory can) is, in a word, 
stupid. It is also unscaleable and will become an administration nightmare. 
And authorisation is not (or SHOULD not be) the job of ACL's its the job of 
authorisation modules, which nssov is.

Being forced to give admins who simply want to be able to change access to 
a random host in a centralised server root access to what may be a critical 
server with other sensitive data on it is simply wrong.

> The user host attribute functionality is deprecated. I have no desire to 
> make it even vaguely appear to be useful.
Then don't sell it as one. You claim pam_ldap compatibility but that is 
false. The user docs also aren't nearly as strongly worded, saying that the 
hostserver and ACL's is preferable, not that userhost is deprecated.

A flexible solution gives administrators the opportunity to use the tool in 
ways you haven't conceived of because it works for them and their 
environment. A ridgid and dictatorial tool forces people to do things one 
way and one way only. I have worked for one of the larger software 
companies and can tell you that the ACL mechanism would scale orders of 
magnitude worse, and they did, in fact have authorisation info stored in 
user and host attributes because that was the only way to delegate 
responsibility to multiple groups.

PS, you may wanna consider dropping the Ulrich Drepper attitude. When a 
contributor, especially a first time one, who has gone to considerable 
lengths to follow all the guidelines and do things just your way has, as 
his first experience someone calling things "stupid" ... well, that will 
thin the development herd considerably.

Comment 4 Howard Chu 2010-03-22 13:26:13 UTC
Kean Johnston wrote:
>> Authorization is the job of the ACL engine. Putting ad-hoc rules into
>> user entries is, in a word, stupid. It's also unscaleable and will
>> become an administration nightmare.
> Well OK then. Using a configuration mechanism like ACL's that cannot be
> distributed to multiple users (like editing a directory can) is, in a word,
> stupid.  It is also unscaleable and will become an administration nightmare.
> And authorisation is not (or SHOULD not be) the job of ACL's its the job of
> authorisation modules, which nssov is.
>
> Being forced to give admins who simply want to be able to change access to
> a random host in a centralised server root access to what may be a critical
> server with other sensitive data on it is simply wrong.

You seem to be laboring under the false premise that root privileges are 
required to administer authorization in slapd. Since that is false, the rest 
of your statements are moot.

>> The user host attribute functionality is deprecated. I have no desire to
>> make it even vaguely appear to be useful.
> Then don't sell it as one. You claim pam_ldap compatibility but that is
> false. The user docs also aren't nearly as strongly worded, saying that the
> hostserver and ACL's is preferable, not that userhost is deprecated.

> A flexible solution gives administrators the opportunity to use the tool in
> ways you haven't conceived of because it works for them and their
> environment. A ridgid and dictatorial tool forces people to do things one
> way and one way only. I have worked for one of the larger software
> companies and can tell you that the ACL mechanism would scale orders of
> magnitude worse, and they did, in fact have authorisation info stored in
> user and host attributes because that was the only way to delegate
> responsibility to multiple groups.

That may have been true of that other software package. That is not true here.

> PS, you may wanna consider dropping the Ulrich Drepper attitude. When a
> contributor, especially a first time one, who has gone to considerable
> lengths to follow all the guidelines and do things just your way has, as
> his first experience someone calling things "stupid" ... well, that will
> thin the development herd considerably.

No, I should rather step it up a notch. I don't want contributions from J. 
Random Developer. I want contributions from people who participate in the 
community. That means reading up on how things are done, following the 
established practices, and demonstrating a familiarity with the way things are 
done and establishing a familiarity with the other community members. That 
means showing that you'll take the time to stick around and continue to 
maintain/support your code if we pull it in. If a developer won't put that 
time in up front, then I don't care how good their code is; I don't want to be 
saddled with it when they inevitably disappear.

The established practice for contributing new code is to discuss it on the 
openldap-devel mailing list first, before spending any time on actual coding. 
After the developer community gets a chance to think about it and weigh in on 
whether it's a good idea or not, then you start (or don't start) writing the 
code and submitting to the ITS.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

Comment 5 Quanah Gibson-Mount 2010-03-23 04:00:58 UTC
--On Monday, March 22, 2010 12:41 PM +0000 kean.johnston@gmail.com wrote:

>> Authorization is the job of the ACL engine. Putting ad-hoc rules into
>> user entries is, in a word, stupid. It's also unscaleable and will
>> become an administration nightmare.
> Well OK then. Using a configuration mechanism like ACL's that cannot be
> distributed to multiple users (like editing a directory can) is, in a
> word,  stupid. It is also unscaleable and will become an administration
> nightmare.  And authorisation is not (or SHOULD not be) the job of ACL's
> its the job of  authorisation modules, which nssov is.
>
> Being forced to give admins who simply want to be able to change access
> to  a random host in a centralised server root access to what may be a
> critical  server with other sensitive data on it is simply wrong.

As already noted, there is no need to give root access to admins.  My guess 
is you really do not understand how ACLs work.  I would advise carefully 
reading the slapd-access(5) man page.

Regards,
Quanah

--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Comment 6 Quanah Gibson-Mount 2010-03-23 05:43:53 UTC
--On Monday, March 22, 2010 9:00 PM -0700 Quanah Gibson-Mount 
<quanah@zimbra.com> wrote:

> As already noted, there is no need to give root access to admins.  My
> guess is you really do not understand how ACLs work.  I would advise
> carefully reading the slapd-access(5) man page.

You may also find a page I wrote some time ago useful in helping to 
understand how ACLs work:

<http://www.stanford.edu/services/directory/openldap/configuration/slapd-acl.html>

Regards,
Quanah

--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Comment 7 OpenLDAP project 2017-04-07 17:47:23 UTC
Invalid
Comment 8 Quanah Gibson-Mount 2017-04-07 17:47:23 UTC
changed notes
changed state Open to Closed