Coder Social home page Coder Social logo

ldaptools-bundle's Introduction

LdapToolsBundle Build Status AppVeyor Build Status Scrutinizer Code Quality Latest 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.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"

Documentation

ldaptools-bundle's People

Contributors

alinalexandru avatar chadsikorra avatar quentinus95 avatar rouet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.