Skip to content

Repository files navigation

LdapToolsBundle Build StatusAppVeyor Build StatusScrutinizer Code QualityLatest Stable Version


The LdapToolsBundle provides easy integration of LDAP for Symfony via LdapTools.

  • An LDAP authentication provider, including AdvancedUserInterface support.
  • An LDAP form type to easily use LDAP objects in forms.
  • An LDAP type for Doctrine to easily store and retrieve LDAP results in a Doctrine entity.
  • Logging capabilities for LDAP operations.
  • Web Debug Toolbar integration for LDAP operations.
  • Integration of LdapTools events for LDAP operations (authentication, creation, modification, etc) using service tags.

Note: The LdapTools library requires PHP 5.6+.

Installation

The recommended way to install the LdapToolsBundle is using Composer:

composer require ldaptools/ldaptools-bundle

Then enable the bundle in the kernel:

// app/AppKernel.phpclass AppKernel extends Kernel
{
publicfunctionregisterBundles()
{
$bundles = array(
// ...newLdapTools\Bundle\LdapToolsBundle\LdapToolsBundle(),
);
// ...
}
}

Getting Started

After installing the bundle you can run the following command to assist in generating/testing your LDAP config:

# It will prompt for some basic questions (LDAP server, username/password to use, etc)
php bin/console ldaptools:generate:config

Adding your domain(s) to the config.yml file is as easy as the following example:

# app/config/config.ymlldap_tools:
domains:
# The below "example" key can be anything you want. It just has to be a unique name for the YML config.example:
# The LDAP FQDN is requireddomain_name: example.local# The username to use for the LDAP connectionusername: foo# The password to use for the usernamepassword: secret# The base DN for LDAP searches (queried from the RootDSE if not provided)base_dn: "dc=example,dc=local"# The LDAP servers to use for the connection (Queried from DNS if not provided)servers: ["dc1", "dc2", "dc3"]# Define another domain if you wantfoo:
domain_name: foo.barusername: foopassword: barservers: ['dc1.foo.bar', 'dc2.foo.bar']base_dn: 'dc=foo,dc=bar'

Domain configuration options are also documented in the LdapTools documentation.

Then in your controller you can use the ldap_tools.ldap_manager service to query/modify/create LDAP objects...

class DefaultController extends Controller
{
publicfunctionindexAction()
{
$ldap = $this->get('ldap_tools.ldap_manager');
$users = $ldap->buildLdapQuery()->fromUsers()->getLdapQuery()->getResult();
$users->count();
foreach ($usersas$user) {
$user->getFirstName();
$user->getLastName();
$user->getUsername();
}
# ...
}
}

Generate/Retrieve Your LDAP SSL Certificate

If you want a quick way to retrieve your server's LDAP SSL certificate you can run a simple command to output it:

# Just supply your LDAP server name...
php bin/console ldaptools:generate:sslcert --server "servername"

Documentation

About

Provides easy LDAP integration for Symfony via LdapTools.

Topics

Resources

Stars

49 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages