Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1.  
  2. import ldap
  3. from django.contrib.auth.models import User
  4. from django.contrib.auth.backends import ModelBackend
  5.  
  6. LDAP = 'ldaps://edir.domain.com:636'
  7. ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
  8. ldap.set_option(ldap.OPT_REFERRALS, 0)
  9.  
  10. class LDAPBackend(ModelBackend):
  11.  
  12.     def get_user(self, user_id):
  13.         try:
  14.             return User.objects.get(pk=user_id)
  15.         except User.DoesNotExist:
  16.             return None
  17.  
  18.     def authenticate(self, username=None, password=None):
  19.         if not username and not password:
  20.             return None
  21.  
  22.         ldapuser = "cn="+ username +",ou=users,o=domain"
  23.         try:
  24.             l = ldap.initialize(LDAP)
  25.             l.simple_bind_s(ldapuser,password)
  26.         except ldap.LDAPError:
  27.             return None
  28.  
  29.         try:
  30.             return User.objects.get(username__exact=username)
  31.         except:
  32.             user = User(username=username)
  33.             user.is_staff = False
  34.             user.is_active = True
  35.             user.is_superuser = False
  36.             user.set_unusable_password()
  37.             user.save()
  38.             return user
  39.  
  40.         return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement