Dealing with spaces in LDAP URI's used with Apache
I had an Apache web server that I wanted to configure to use LDAP authentication for
controlling access to some pages.  The LDAP directory already existed, in the form
of the company's Active Directory.  Unfortunately, the company's two-word name was
part of the URI.  This was not difficult to deal with when using command-line tools
such as ldeapsearch, because the DN could be placed in quotes.  But this syntax doesn't
work in Apache's httpd.conf.  The key turned out to be using %20 to represent the space
between the two words, like so:
ldap_uri: ldap://activdir.example.edu:389/ou=All%20Users,dc=win,dc=example,dc=edu??sub?(uid=%s)?x-BindDN=bindid,x-Password=password
This syntax was used in section 2.5.1 in a 
document on PubCookie which also looks very interesting.  Here's the complete LDAP section of
httpd.conf:
   AuthLDAPAuthoritative on
   AuthLDAPEnabled on
   AuthType Basic
   AuthName "Restricted Area"
 
   AuthLDAPBindDN "cn=Recipients,ou=Edina,o=Acme Manufacturing"
   AuthLDAPURL ldap://mnmtkex6:389/dc=Acme%20Manufacturing?sAMAccountName?sub?(objectclass=*)
   Require valid-user
I must point out, however, that using the above code, I could not get LDAP authentication from AD to work.  When
I pointed it a Sun LDAP server, it worked fine.
Special thanks to my
friend Pete Palmer for finding the answer about the spaces
for me.
04/15/2005