title: Django LDAP authentication through Active Directory 2008
body: <p>I'm trying to authenticate my user through the corporate Active Directory server.
  I am unable to configure it properly, I know the LDAP works I have a MediaWiki that is configured and working to
  authenticate on the Active Directory Server.</p>
  
  <p>system:</p>
  
  <pre><code>    Active Directory 2008
      Django (1, 3, 0, 'final', 0)
      django-auth-ldap 1.0.9
  </code></pre>
  
  <p>Here is my configuration in settings.py</p>
  
  <pre><code>    from django_auth_ldap.config import LDAPSearch
      import logging
  
      # makes sure this works in Active Directory
      ldap.set_option(ldap.OPT_REFERRALS, 0)
  
      LDAP_SERVER_URI = 'ldap://ad.exemple.com'
      AUTH_LDAP_BIND_DN = 'my_user'
      AUTH_LDAP_BIND_PASSWORD = 'my_pass'
      AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=exemple,dc=com', ldap.SCOPE_SUBTREE, '(SAMAccountName=%(user)s)')
  
      # Populate the Django user from the LDAP directory.
      AUTH_LDAP_USER_ATTR_MAP = {
              "first_name": "givenName",
              "last_name": "sn",
              "email": "mail"
      }
  
      # This is the default, but I like to be explicit.
      AUTH_LDAP_ALWAYS_UPDATE_USER = True
  
      AUTHENTICATION_BACKENDS = (
              'django_auth_ldap.backend.LDAPBackend',
              'django.contrib.auth.backends.ModelBackend',
      )
  </code></pre>
  
  <p>I also tried the ssl way by adding the new URI</p>
  
  <pre><code>    LDAP_SERVER_URI = 'ldaps://ad.exemple.com:636'
  </code></pre>
  
  <p>I used the main group User to search into I don't need any particular group that I want to authenticate.</p>
  
  <p>The error message it returns the error :</p>
  
  <pre><code>    WARNING 2011-05-31 16:50:19,429 backend 3968 140632428340992 Caught LDAPError while authenticating my_user: INVALID_CREDENTIALS({'info': '80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 525, v1772', 'desc': 'Invalid credentials'},)
      [31/May/2011 16:50:19] "POST /admin/ HTTP/1.1" 200 9648
  </code></pre>
  
  <p>Seeing this error and looking for the LDAP error  DSID-0C0903AA I found that I should try to set the username like this</p>
  
  <pre><code>my_user@exemple.com
  </code></pre>
  
  <p>It didn't work, it returns the error :</p>
  
  <pre><code>    ERROR 2011-05-31 16:55:38,947 config 6505 139868662060800 search_s('dc=ubilium,dc=loc', 2, '(SAMAccountName=my_user)') raised OPERATIONS_ERROR({'info': '000004DC: LdapErr: DSID-0C0906DD, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1772', 'desc': 'Operations error'},)
      DEBUG 2011-05-31 16:55:38,947 backend 6505 139868662060800 Authentication failed for my_user
  </code></pre>
  
  <p>Does anyone has any clue how to get it to connect?</p>