2

I am implementing LDAP authentication in laravel app. When I run this code I am getting an error.

I don't know whether it is correct or not. I am totally new to LDAP and I don't know how it works by seeing the documentation I have done till now.
Please help me out for setting the correct configuration settings for laravel-ldap.

Adldap \ Auth \ BindException (49)
Invalid credentials
 protected function attemptLogin(Request $request)
    {
       $ldap = new Adldap;
        $data = Adldap::users()->get();
       dd($data);

    }

the credential which I got from client

User Name: username
 Password: password
 IP:172.16.xx.xx
 Port: 389
 Attributes: CN=user.admin,CN=Users,DC=UATADSRV,DC=COM

my .env file

LDAP_HOSTS=172.16.xx.xx
LDAP_BASE_DN=CN=user.admin,CN=Users,DC=UATADSRV,DC=COM
LDAP_USER_ATTRIBUTE=samaccountname
LDAP_CONNECTION=default
LDAP_USERNAME=username
LDAP_PASSWORD=password

ldap.php

return [

    'logging' => env('LDAP_LOGGING', false),

    'connections' => [

        'default' => [
   'auto_connect' => env('LDAP_AUTO_CONNECT', true),

            'connection' => Adldap\Connections\Ldap::class,

            'settings' => [
    'schema' => Adldap\Schemas\ActiveDirectory::class,


                'account_prefix' => env('LDAP_ACCOUNT_PREFIX', ''),

                'account_suffix' => env('LDAP_ACCOUNT_SUFFIX', ''),   

                'hosts' => explode(' ', env('LDAP_HOSTS', 'corp-dc1.corp.acme.org corp-dc2.corp.acme.org')),

         'port' => env('LDAP_PORT', 389),

                'timeout' => env('LDAP_TIMEOUT', 5),

                'base_dn' => env('LDAP_BASE_DN', 'dc=corp,dc=acme,dc=org'),

                'username' => env('LDAP_USERNAME'),
                'password' => env('LDAP_PASSWORD'),

                'follow_referrals' => false,


                'use_ssl' => env('LDAP_USE_SSL', false),
                'use_tls' => env('LDAP_USE_TLS', false),

            ],

        ],

    ],

];


ldap_auth.php

return [

    'connection' => env('LDAP_CONNECTION', 'default'),

    'provider' => Adldap\Laravel\Auth\DatabaseUserProvider::class,

    'model' => App\User::class,
    'rules' => [


        Adldap\Laravel\Validation\Rules\DenyTrashed::class,

    ],



    'scopes' => [



    ],

    'identifiers' => [

    'rules' => [


        Adldap\Laravel\Validation\Rules\DenyTrashed::class,

    ],



    'scopes' => [



    ],

    'identifiers' => [

 'ldap' => [

         //   'locate_users_by' => 'userprincipalname',
             'locate_users_by' => 'samaccountname',

            'bind_users_by' => 'distinguishedname',

        ],

        'database' => [

            'guid_column' => 'objectguid',
           'username_column' => 'username',

        ],
  'windows' => [

            'locate_users_by' => 'samaccountname',

            'server_key' => 'AUTH_USER',

        ],

    ],

    'passwords' => [



        'sync' => env('LDAP_PASSWORD_SYNC', false),



        'column' => 'password',
  ],


    'login_fallback' => env('LDAP_LOGIN_FALLBACK', false),



    'sync_attributes' => [

        'email' => 'userprincipalname',
        'username' => 'samaccountname',
        'name' => 'cn',

    ],

  'logging' => [

        'enabled' => env('LDAP_LOGGING', true),

        'events' => [

            \Adldap\Laravel\Events\Importing::class                 => \Adldap\Laravel\Listeners\LogImport::class,
            \Adldap\Laravel\Events\Synchronized::class              => \Adldap\Laravel\Listeners\LogSynchronized::class,
            \Adldap\Laravel\Events\Synchronizing::class             => \Adldap\Laravel\Listeners\LogSynchronizing::class,
            \Adldap\Laravel\Events\Authenticated::class             => \Adldap\Laravel\Listeners\LogAuthenticated::class,
            \Adldap\Laravel\Events\Authenticating::class            => \Adldap\Laravel\Listeners\LogAuthentication::class,
            \Adldap\Laravel\Events\AuthenticationFailed::class      => \Adldap\Laravel\Listeners\LogAuthenticationFailure::class,
            \Adldap\Laravel\Events\AuthenticationRejected::class    => \Adldap\Laravel\Listeners\LogAuthenticationRejection::class,
            \Adldap\Laravel\Events\AuthenticationSuccessful::class  => \Adldap\Laravel\Listeners\LogAuthenticationSuccess::class,
            \Adldap\Laravel\Events\DiscoveredWithCredentials::class => \Adldap\Laravel\Listeners\LogDiscovery::class,
            \Adldap\Laravel\Events\AuthenticatedWithWindows::class  => \Adldap\Laravel\Listeners\LogWindowsAuth::class,
            \Adldap\Laravel\Events\AuthenticatedModelTrashed::class => \Adldap\Laravel\Listeners\LogTrashedModel::class,

        ],
    ],

];


Thank you

Amit Kumar PRO
  • 1,222
  • 2
  • 15
  • 27
matheen ulla
  • 526
  • 7
  • 27

1 Answers1

1

The LDAP server is saying that your provided credentials are wrong. Are you sure, that your username and password is 100% correct? A space or any kind of invalid character?

CN=user.admin,CN=Users,DC=UATADSRV,DC=COM`

Also, is it working with ldap_bind() function?

Simon
  • 179
  • 1
  • 11
  • yes It is correct. I have one daubt from the above credential which is the username I don't know I am confused between attributes and username .Can you help me out with that? – matheen ulla Jan 30 '20 at 02:28
  • @matheenulla sure I can help you with. So if it is working with ldap_bind() function, then it must be somewhere else in this package.. Okay, what if you try to use the base DN (distinguished name) and password to login? – Simon Feb 03 '20 at 11:13
  • What about the following links? Looks like people are having some issues with it. https://github.com/Adldap2/Adldap2-Laravel/issues/229 https://github.com/Adldap2/Adldap2-Laravel/issues/695 Also what about this post (it might help you with): https://stackoverflow.com/questions/48098800/adldap2-laravel-where-to-put-my-logic – Simon Feb 03 '20 at 11:14
  • Hi, I saw all the issues. my main problem is I am confused between the credential. First of all, I am still trying to understand what is LDAP is. How it will work and how to connect? they are so many doubt I have not cleared till now. If you have any good tutorial or premium courses on laravel and LDAP I am ready to take. From almost 3 weeks I am working on it – matheen ulla Feb 03 '20 at 11:22