[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: ldaprc with ldaps:// and ldap:// fallback



Dan White wrote:
> On 24/06/10 22:13 +0200, Emmanuel Dreyfus wrote:
>> Dan White <dwhite@olp.net> wrote:
>>
>>> You could do SASL EXTERNAL over both, with ldapi:/// using Unix
>>> peercred,
>>> i.e.:
>>>
>>> authz-regexp
>>>    ".*uidNumber=([^,]+),cn=peercred,cn=external,cn=auth"
>>>    ldap:///ou=People,dc=example,dc=net??one?(uidNumber=$1)
>>
>> That sounds nice, but will it works with the "TLS_REQCERT demand" I have
>> for ldaps:// ?
> 
> Try:
> 
> TLS_REQCERT: try
> 
> In this case, EXTERNAL should only be offered after successful TLS
> negotiation, or over a unix domain socket.

Why should this have effect for ldapi:/// at all?

> If TLS negotiation fails, then a SASL bind won't work without selecting
> another mechanism.

There is no TLS negotiation on a Unix domain socket at all.

IMO many statements in this thread cause confusion: EXTERNAL acts differently
depending on the connection type used. AFAIK you can query whether it's
available for a certain connection by reading attribute
supportedSASLMechanisms in the rootDSE.

Emmanuel should simply set up a test environment where all the relevant
clients always use SASL/EXTERNAL and have a SASL authc-to-authz-DN mapping in
place for ldaps:// with client certs and ldapi:/// with peer credentials. The
TLS options only affect ldaps:// or ldap:// with StartTLS ext.op.

Ciao, Michael.