Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ldap
- from django.contrib.auth.models import User
- from django.contrib.auth.backends import ModelBackend
- LDAP = 'ldaps://edir.domain.com:636'
- ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
- ldap.set_option(ldap.OPT_REFERRALS, 0)
- class LDAPBackend(ModelBackend):
- def get_user(self, user_id):
- try:
- return User.objects.get(pk=user_id)
- except User.DoesNotExist:
- return None
- def authenticate(self, username=None, password=None):
- if not username and not password:
- return None
- ldapuser = "cn="+ username +",ou=users,o=domain"
- try:
- l = ldap.initialize(LDAP)
- l.simple_bind_s(ldapuser,password)
- except ldap.LDAPError:
- return None
- try:
- return User.objects.get(username__exact=username)
- except:
- user = User(username=username)
- user.is_staff = False
- user.is_active = True
- user.is_superuser = False
- user.set_unusable_password()
- user.save()
- return user
- return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement