The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

OpenInteract2::Datasource::LDAP - Centralized connection location to LDAP directories

SYNOPSIS

 # Define the parameters for an LDAP connection called 'primary'

 [datasource primary]
 type          = LDAP
 host          = localhost
 port          = 389
 base_dn       = dc=mycompany, dc=com
 timeout       = 120
 version       = 2
 sasl          =
 debug         =
 bind_dn       = cn=webuser, ou=People, dc=mycompany, dc=com
 bind_password = urkelnut
 perform_bind  = yes
 
 # Request the datasource 'primary' from the $OP object
 
 my $ldap = CTX->datasource( 'primary' );
 my $mesg =  $ldap->search( "urkelFan=yes" );
 ...

DESCRIPTION

Connect and/or bind to an LDAP directory.

METHODS

connect( $datasource_name, \%datasource_info )

Parameters used in \%datsource_info

  • host: host LDAP server is running on

  • port: defaults to 389

  • debug: see Net::LDAP for what this will do

  • timeout: defaults to 120

  • version: defaults to 2; version of the LDAP protocol to use.

  • perform_bind: if true, we perform a bind (using 'bind_dn' and 'bind_password') when we connect to the LDAP directory

  • bind_dn: DN to bind with (if requested to bind)

  • bind_password: password to bind with (if requested to bind)

  • sasl: if true, use SASL when binding (if requested to bind)

Returns: a Net::LDAP connection. If there is an error we throw an exception of the OpenInteract2::Exception::Datasource variety.

bind( $ldap_connection, \%bind_params )

Bind an LDAP connection using a DN/password combination. With many servers, you can do this more than once with a single connection.

Parameters used:

  • bind_dn: DN to bind as.

  • bind_password: Password to use when binding.

  • sasl: If set to true, use SASL for authentication. Note: this is completely untested, and even if it works it only uses the CRAM-MD5 method of authentication.

Returns: LDAP handle with bind() run, or throws an exception to explain why it failed. An OpenInteract2::Exception is thrown if a resource could not be loaded, a OpenInteract2::Exception::Datasource is thrown if we could not perform the bind.

connect_and_bind( \%connect_params, \%other_params )

Run both the connect() and bind() methods.

TO DO

This hasn't been tested yet. (Got an LDAP server/setup handy?)

SEE ALSO

OpenInteract2::Exception::Datasource

Net::LDAP

COPYRIGHT

Copyright (c) 2002-2004 Chris Winters. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS

Chris Winters <chris@cwinters.com>