[Catalyst]
Catalyst::Plugin::Authentication::Store::LDAPsettingsfor
Microsoft Active Directory
Hermida, Leandro
Leandro.Hermida at fmi.ch
Fri Dec 22 16:11:09 GMT 2006
> -----Original Message-----
> From: Peter Karman [mailto:peter at peknet.com]
> Sent: Friday, December 22, 2006 15:51
> > Hermida, Leandro scribbled on 12/21/06 12:18 PM:
> >
> > Here are the errors shown in the Catalyst debug screen:
> >
> > Deep recursion on subroutine
> > "Catalyst::Plugin::Authentication::Store::LDAP::User::stringify" at
> >
> /usr/lib/perl5/site_perl/5.8.5/Catalyst/Plugin/Authentication/Store/LD
> > AP
> > /User.pm line 254.
> > Deep recursion on subroutine
> > "Catalyst::Plugin::Authentication::Store::LDAP::User::AUTOLOAD" at
> >
> /usr/lib/perl5/site_perl/5.8.5/Catalyst/Plugin/Authentication/Store/LD
> > AP
> > /User.pm line 100.
> >
>
> not sure if it's the same issue, but this might help:
>
> http://article.gmane.org/gmane.comp.web.catalyst.general/7523/
> match=ldap
>
> pek
It works! Thanks for this link! We need to make it clear that the
user_field needs to be in lowercase to avoid this deep recursion error,
at least with C::P::A::Store::LDAP and Active Directory. With
user_filter it doesn't seem to matter. As mentioned in a previous email
in this thread, I would like to propose for the documentation an example
setup for Active Directory:
In myapp.yml:
authentication:
ldap:
ldap_server: ads.domain.com
ldap_server_options:
version: 3
binddn: cn=adsearchuser,cn=Users,dc=domain,dc=com
bindpw: adsearchpassword
user_basedn: cn=Users,dc=domain,dc=com
user_scope: sub
user_filter: (&(objectclass=user)(samaccountname=%s))
user_field: samaccountname
Some notes:
adsearchuser in the binddn should be replaced with the Windows account
in your domain which had rights to search the Active Directory LDAP
tree. adsearchpassword should be replaced with
user_basedn can vary because your Windows sysadmin might have a
hierarchy of OUs defined under the dc=domain,dc=com where he/she put
user account entries. An example of an alternative could be
ou=User,ou=Finance,dc=domain,dc=com. If your adsearchuser account has
privileges to search the entire Active Directory tree I have found that
simply specifying dc=domain,dc=com as the user_basedn will still work -
it just has to search from higher in the tree before finding the entry.
user_field needs to be in lowercase!
TLS or SSL don't seem to work when connecting to Active Directory so
please do not set start_tls: 1 nor specify the ldap_server as a URI with
ldaps://. If someone has managed to get this to work using Net::LDAP, I
would really like to know.
Leandro
More information about the Catalyst
mailing list