[ 
http://issues.apache.org/jira/browse/DIREVE-283?page=comments#action_12355894 ] 

Stefan Zoerner commented on DIREVE-283:
---------------------------------------

I currently have several problems with the behavior of the LDAP provider since 
this fix. At least this one is easy to demonstrate:

First I configure anonymous access for my server within server.xml like this:

<property name="allowAnonymousAccess"><value>true</value></property>

Then I do the following via command line:

$ ldapsearch -b "" -s base -h localhost -p 10389 "(objectclass=*)"

supportedFeatures=1.3.6.1.4.1.4203.1.5.1
objectClass=extensibleObject
objectClass=top
$

This is fine. But the following is an error:

$ ldapsearch -b "dc=apache,dc=org" -s base -p 10389 "(objectclass=*)"
ldap_search: Insufficient access
ldap_search: additional info: failed on search operation:
[EMAIL PROTECTED]:
org.apache.ldap.common.exception.LdapNoPermissionException: Anonymous binds 
have been disabled!
        at 
org.apache.ldap.server.protocol.SessionRegistry.getLdapContext(SessionRegistry.java:190)
        at 
org.apache.ldap.server.protocol.support.SearchHandler.messageReceived(SearchHandler.java:108)
        at 
org.apache.mina.protocol.handler.DemuxingProtocolHandler.messageReceived(DemuxingProtocolHandler.java:94)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain$2.messageReceived(AbstractProtocolFilterChain.java:149)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.access$1000(AbstractProtocolFilterChain.java:50)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain$Entry$1.messageReceived(AbstractProtocolFilterChain.java:524)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain$1.messageReceived(AbstractProtocolFilterChain.java:99)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.messageReceived(AbstractProtocolFilterChain.java:356)
        at 
org.apache.mina.protocol.ProtocolSessionManagerFilterChain$1.messageReceived(ProtocolSessionManagerFilterChain.java:76)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.callNextMessageReceived(AbstractProtocolFilterChain.java:365)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain.access$1000(AbstractProtocolFilterChain.java:50)
        at 
org.apache.mina.protocol.AbstractProtocolFilterChain$Entry$1.messageReceived(AbstractProtocolFilterChain.java:524)
        at 
org.apache.mina.protocol.filter.ProtocolThreadPoolFilter.processEvent(ProtocolThreadPoolFilter.java:108)
        at 
org.apache.mina.util.BaseThreadPool$Worker.processEvents(BaseThreadPool.java:410)
        at 
org.apache.mina.util.BaseThreadPool$Worker.run(BaseThreadPool.java:355)

$

because anonymous binds are enabled. The client should be allowed to see this 
entry, like the admin for instance is:

$ ldapsearch -D "uid=admin,ou=system" -w ***** -b "dc=apache,dc=org" -s base -h 
localhost -p 10389 "(objectclass=*)"
dc=apache,dc=org
dc=apache
objectClass=extensibleObject
objectClass=domain
objectClass=top
$

I'll try to file the other problem(s) (I hope it is only one in different 
flavors) soon -- difficult to reduce, unfortunately.

> If anonymous access is disabled, reading the Root DSE is forbidden by the 
> server
> --------------------------------------------------------------------------------
>
>          Key: DIREVE-283
>          URL: http://issues.apache.org/jira/browse/DIREVE-283
>      Project: Directory Server
>         Type: Bug
>     Reporter: Stefan Zoerner
>     Assignee: Alex Karasulu
>      Fix For: 0.9.3

>
> If anonymous access is disabled, i.e. configuration is 
>  <property name="allowAnonymousAccess"><value>false</value></property>
> a client which binds anonymously is not allowed to fetch any Root DSE data. 
> $ ldapsearch -b "" -s base -p 10389 "(objectclass=*)"
> ldap_simple_bind: Insufficient access
> It is expected that a client is at least able to read the attribute 
> supportedSASLMechanisms if connected anonymously. This is because s/he can 
> then decide which mechanism fits his/her needs best, before authentication. 
> Here is what RFC 2829 says:
> 5. Anonymous authentication
>    ...
>    LDAP implementations MUST support anonymous authentication, as
>    defined in section 5.1.
>    ...
>    While there MAY be access control restrictions to prevent access to
>    directory entries, an LDAP server SHOULD allow an anonymously-bound
>    client to retrieve the supportedSASLMechanisms attribute of the root
>    DSE.
>    ...
> It is quite normal, that LDAP servers present the other information 
> advertised in the Root DSE to anonymously connected clients as well (e.g. 
> supportedLDAPVersion, namingContexts), even if anonymous binds are not 
> allowed (e.g. default configuration of Active Directory).
> But it seems to be up to us, which information we give anonymously bind users 
> (except supportedSASLMechanisms), this is what RFC 2251 says:
> 3.4. Server-specific Data Requirements
>    An LDAP server MUST provide information about itself and other
>    information that is specific to each server.  This is represented as
>    a group of attributes located in the root DSE (DSA-Specific Entry),
>    which is named with the zero-length LDAPDN.  These attributes are
>    retrievable if a client performs a base object search of the root
>    with filter "(objectClass=*)", however they are subject to access
>    control restrictions.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to