Hi guys,

I'm just wondering how it connects to http://www.ietf.org/rfc/rfc4370.txt.

wdyt ?

On 5/31/07, Quanah Gibson-Mount <[EMAIL PROTECTED]> wrote:
--On Thursday, May 31, 2007 1:17 AM -0400 Alex Karasulu
<[EMAIL PROTECTED]> wrote:

>
>
>
> On 5/31/07, Quanah Gibson-Mount <[EMAIL PROTECTED]> wrote:
>
> --On Wednesday, May 30, 2007 10:11 PM -0700 Enrique Rodriguez
> <[EMAIL PROTECTED]> wrote:
>
>> Actually, I very much care whether the request is internal vs.
>> external and much much less "who" is attempting the authentication.
>> The issue with what I want to do is that certain operations must NEVER
>> be allowed to occur from outside the server.  Basing this upon the
>> bind principal does not help since a bind principal can be
>> compromised.  To avoid a security problem when a principal is
>> compromised, I must prevent certain operations from ever occuring from
>> outside the server, and thus I must know whether a request is coming
>> from inside vs. outside the server and not who the bind principal is.
>
> This is something that matters considerably when considering dynamic group
> expansion.  I haven't followed whether or not Apache DS has implemented
> (or
> will implement) this, but that's certainly a place where I found that it
> is
> necessary to have the concept of an internal ID acting on different
> permissions from the external ID making a request.
>
>
>
> This is interesting can you elaborate or give an example of such a
> situation?

Certainly. :)

At Stanford, user groups were always implemented via an attribute
(suPrivilegeGroup).  Due to data policy restrictions because of US Law
(FERPA, HIPAA), access to the attribute itself is highly restricted.  The
attribute is multi-valued, and may contain data that is not covered by US
Law (and thus world readable).  Stanford desires to use the attribute
values for authorization via groups.  So an example entry might have
something like:

suregid=1234,cn=people,dc=stanford,dc=edu
....
suPrivilegeGroup: FERPA1
suPrivilegeGroup: FERPA2
suPrivilegeGroup: WORLD1
suPrivilegeGroup: WORLD2


Dynamic groups work on the concept of evaluating an LDAP URI to create the
membership list.  So that might be something like (and this is off the top
of my head for that rather arcane URI syntax...)

ldap:///cn=people,dc=stanford,dc=edu??suPrivilegeGroup=FERPA1


Now, normally, to create the population for this dynamic group, it requires
that the identity connection to the server (lets say "www") has at least
search ability on the suPrivilegeGroup attribute.  However, if Stanford
grants search on that attribute to the "www" principal, any user on the www
servers can potentially use the credentials of the www server (via CGI
scripts or other methods) to find out what people are in particular groups.
To fix this issue, the general idea is to allow an "internal" ID to be
defined in the dynamic group object that is what performs the actual
evaluation of the LDAP URI.  This way, the LDAP access to the group object
can be allowed for the "www" identity, but it itself actually has no
ability to search the user entries for suPrivilegeGroup values.

There's an RFC on dynamic groups that is currently draft that incorporates
this idea, but has several serious flaws in it.  A discussion about the
draft and its current flaws can be found at:

<http://www.openldap.org/lists/ietf-ldapext/200702/threads.html>

--Quanah

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



--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to