Michael Ströder wrote:
Kurt Zeilenga wrote:On Apr 1, 2010, at 3:22 PM, Quanah Gibson-Mount wrote:--On Thursday, April 01, 2010 12:58 PM -0700 Howard Chu<hyc@symas.com> wrote:Michael Ströder wrote:HI! I have some doubts about ACLs containing "by users" and the term "authenticated clients" used in the man pages: If I bind with SASL/EXTERNAL (e.g. over LDAPI) and the authc-DN does *not* map to an authz-DN of a real directory entry what does "by users" then mean exactly?It means anyone who has successfully authenticated, by any means.It seems that slapd grants access with clause "by users" but I feel this is wrong. I'd prefer if "users" would mean fully-identified clients mapped to a real entry.No. Such a restriction would prevent distributed authentication from ever working.The downside of not being able to be able to specify authenticated DNs vs DNs that actually map to an entry in the database is that for some things (like SASL/GSSAPI setups) it makes the "users" value completely worthless, as any kerberos principal in the KDB that connects to the ldap servers is considered a "user".You confuse authentication with authorization. In this case, that principal is certainly authenticated. It's just not authorized (in your case). There certainly may be cases where such users are authorized to some degree.Kurt, it's not that simple: Off course there was an successful authentication in case of SASL/EXTERNAL. Taking the term "authenticated clients" literally you're done for processing "by users". But the user is not really *identified* in terms of an entity represented by a directory entry and therefore the behaviour looks strange to me because no-one wants to deal with SASL authc-DNs when designing ACLs. I'd prefer changing semantics of "by users" to "identified clients" or having another key-word "by identifiedusers" with that semantics.
That's completely wrong. "Authentication" is the process by which one party asserts their identity to another party and provides proof of that assertion. If the client has authenticated successfully, then they have, by definition, identified themselves.
The authorization step happens *after* identification based on the (optionally mapped) principal name.
Yes of course. And if you want some certain authenticated clients to be treated differently from other authenticated clients, that's your business. That's exactly what ACLs are for.
As an aside, if your authentication system identifies a large proportion of clients that you don't actually want to serve, it seems to me you're not using the right authentication system, but that's totally a side issue.
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/