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.
JavaScript
x
Adldap Auth BindException (49)
Invalid credentials
JavaScript
protected function attemptLogin(Request $request)
{
$ldap = new Adldap;
$data = Adldap::users()->get();
dd($data);
}
the credential which I got from client
JavaScript
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
JavaScript
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
JavaScript
return [
'logging' => env('LDAP_LOGGING', false),
'connections' => [
'default' => [
'auto_connect' => env('LDAP_AUTO_CONNECT', true),
'connection' => AdldapConnectionsLdap::class,
'settings' => [
'schema' => AdldapSchemasActiveDirectory::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
JavaScript
return [
'connection' => env('LDAP_CONNECTION', 'default'),
'provider' => AdldapLaravelAuthDatabaseUserProvider::class,
'model' => AppUser::class,
'rules' => [
AdldapLaravelValidationRulesDenyTrashed::class,
],
'scopes' => [
],
'identifiers' => [
'rules' => [
AdldapLaravelValidationRulesDenyTrashed::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' => [
AdldapLaravelEventsImporting::class => AdldapLaravelListenersLogImport::class,
AdldapLaravelEventsSynchronized::class => AdldapLaravelListenersLogSynchronized::class,
AdldapLaravelEventsSynchronizing::class => AdldapLaravelListenersLogSynchronizing::class,
AdldapLaravelEventsAuthenticated::class => AdldapLaravelListenersLogAuthenticated::class,
AdldapLaravelEventsAuthenticating::class => AdldapLaravelListenersLogAuthentication::class,
AdldapLaravelEventsAuthenticationFailed::class => AdldapLaravelListenersLogAuthenticationFailure::class,
AdldapLaravelEventsAuthenticationRejected::class => AdldapLaravelListenersLogAuthenticationRejection::class,
AdldapLaravelEventsAuthenticationSuccessful::class => AdldapLaravelListenersLogAuthenticationSuccess::class,
AdldapLaravelEventsDiscoveredWithCredentials::class => AdldapLaravelListenersLogDiscovery::class,
AdldapLaravelEventsAuthenticatedWithWindows::class => AdldapLaravelListenersLogWindowsAuth::class,
AdldapLaravelEventsAuthenticatedModelTrashed::class => AdldapLaravelListenersLogTrashedModel::class,
],
],
];
Thank you
Advertisement
Answer
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?
JavaScript
CN=user.admin,CN=Users,DC=UATADSRV,DC=COM`
Also, is it working with ldap_bind() function?