title: How to login using LDAP in Django
body: <p>I am trying to enable LDAP server for login and authenticate in my Django application. I read django-auth-ldap tutorial and done all the changes in settings.py.</p>
  
  <p>But I not able to login from LDAP server users, Django always try to login only form local database.</p>
  
  <p>What i have to do and change any thing while login user? any changes is required in view.py authenticate() function for login.</p>
  
  <p>My code snippets are below : </p>
  
  <pre><code>settings.py
  
  AUTH_LDAP_SERVER_URI = 'ldap://my_domain.com'
  AUTH_LDAP_BIND_DN = 'cn=admin,dc=my_domain,dc=com'
  AUTH_LDAP_BIND_PASSWORD = 'My_password'
  AUTH_LDAP_USER_SEARCH = LDAPSearch(
  'ou=users,dc=my_domain,dc=com',
  ldap.SCOPE_SUBTREE,
  '(uid=%(user)s)',
  )
  
  AUTH_LDAP_CONNECTION_OPTIONS = {
  ldap.OPT_REFERRALS: 0
  }
  
  # Set up the basic group parameters.
  
  AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
  'ou=django,dc=my_domain,dc=com',
  ldap.SCOPE_SUBTREE,
  '(objectClass=groupOfNames)',
  )
  AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr='cn')
  
  # Simple group restrictions
  
  AUTH_LDAP_REQUIRE_GROUP = 'cn=enabled,ou=django,ou=groups,dc=my_domain,dc=com'
  AUTH_LDAP_DENY_GROUP = 'cn=disabled,ou=django,ou=groups,dc=my_domain,dc=com'
  
  # Populate the Django user from the LDAP directory.
  
  AUTH_LDAP_USER_ATTR_MAP = {
  "username": "uid",
  "passsword": "userPassword"
  }
  
  AUTH_LDAP_USER_FLAGS_BY_GROUP = {
  'is_active': 'cn=active,ou=django,ou=groups,dc=my_domain,dc=com',
  'is_staff': 'cn=staff,ou=django,ou=groups,dc=my_domain,dc=com',
  'is_superuser': 'cn=superuser,ou=django,ou=groups,dc=my_domain,dc=com',
  }
  
  # This is the default, but I like to be explicit.
  AUTH_LDAP_ALWAYS_UPDATE_USER = True
  # Use LDAP group membership to calculate group permissions.
  AUTH_LDAP_FIND_GROUP_PERMS = True
  # Cache distinguised names and group memberships for an hour to minimize
  # LDAP traffic.
  AUTH_LDAP_CACHE_TIMEOUT = 3600
  # Keep ModelBackend around for per-user permissions and maybe a local
  
  # superuser.
  
  AUTHENTICATION_BACKENDS = (
  'django_auth_ldap.backend.LDAPBackend',
  'django.contrib.auth.backends.ModelBackend',
  )
  
  
  #view.py
  
  from django.contrib.auth import authenticate, login
  
  def user_login(request):
      user = authenticate(username = username, password = password)
      login(request, user)
      return HttpResponseRedirect('/')
  </code></pre>
  
  <p>Any code changes required in user_login() function or djagno automatically checks and authenticate users from <strong>LDAP as well as local database</strong>.</p>
  
  <p><strong>I am not sure which Django function will used for login purpose.</strong></p>
  
  <p>Any one please help me.</p>