ldaptools / ldaptools-bundle
Provides easy LDAP integration for Symfony via LdapTools.
Installs: 147 315
Dependents: 0
Suggesters: 0
Security: 0
Stars: 49
Watchers: 5
Forks: 29
Open Issues: 22
Type:symfony-bundle
Requires
- ldaptools/ldaptools: >=0.25
- symfony/framework-bundle: ~2.7|~3.0|~4.0
Requires (Dev)
- akeneo/phpspec-skip-example-extension: ~2.0
- doctrine/orm: ~2.4
- friendsofphp/php-cs-fixer: ~1.0
- phpspec/phpspec: ~3.0
- symfony/form: ~2.7|~3.0|~4.0
- symfony/security-bundle: ~2.7|~3.0|~4.0
Suggests
- doctrine/doctrine-bundle: For LDAP object type integration in Doctrine.
README
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.php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new LdapTools\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.yml ldap_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 required domain_name: example.local # The username to use for the LDAP connection username: foo # The password to use for the username password: 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 want foo: domain_name: foo.bar username: foo password: bar servers: ['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 { public function indexAction() { $ldap = $this->get('ldap_tools.ldap_manager'); $users = $ldap->buildLdapQuery()->fromUsers()->getLdapQuery()->getResult(); $users->count(); foreach ($users as $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"