[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Additional <filter> in referrals (Was: Help with a referral)
>>
>> Referrals don't work like that. Read RFC4511: the <attrs> field is not
>> mentioned. It mentions, indeed, the <filter> field, but OpenLDAP does
>> not
>> handle this. The behavior you possibly expect is not strictly
>> specified,
>> AFAIK.
>>
>> I think you have a couple of options:
>>
>> 1) use ACLs to hide that entry to some specific clients
>>
>> 2) use a dummy proxy instead of a referral; the dummy proxy could
>> massage
>> the request/response DNs, and the original server could use ACLs to hide
>> that entry from the results returned to the proxy.
>>
>
> I tought OpenLDAP could support that kind of referrals. Now I think
> the best option is the best for my scenario.
The <attrs> issue makes little sense. The <filter> issue may be worth,
although clear semantics need to be defined. I note that rfc 3296 appears
to explicitly prohibit a filter in the LDAP URL, while rfc 4511 instructs
the client about using the filter in the LDAP URL if present. This is not
strictly a contradiction, because the server may modify the URL stored in
the Named Subordinate Reference object before returning it to the client,
e.g. by adding a filter.
For example, in order to obtain what I think you mean, a <filter> field in
the Named Subordinate Reference object's URL, e.g. "(!(uid=admin))", would
require the server, in case of a search with scope "subtree", base
"ou=Paople,dc=example,dc=com" and filter "(attr=val)", to return a
referral
ldap://host/ou=People,dc=example,dc=com??sub?(&(!(uid=admin))(attr=val))
The filter should be completely removed when performing other types of
operations, in compliance with rfc3296.
If you think this makes sense and you would like to see it implemented, I
suggest to file an ITS as a feature request, pending technical discussion
<http://www.openldap.org/its/>.
p.