2017-01-17 5 views
2

В настоящее время я работаю над Django Python. Моя цель - аутентифицировать пользователя из каталога Ldap. У меня есть код python для доступа к каталогу ldap и получения информации.Django Python - Ldap Authentication

Код:

import ldap 
try: 
     l = ldap.open("ldap.forumsys.com") 
     l.protocol_version = ldap.VERSION2 
     username = "cn=read-only-admin,dc=example,dc=com" 
     password = "password" 
     l.simple_bind(username,password) 

except ldap.LDAPError,e: 
     print e 

Мои сомнения в том, что, как бы я реализовать это в моем Джанго? , Как использовать этот код в django и реализовать его?

Заранее спасибо

+0

Вы посмотрели на [django-python3-ldap] (https://github.com/etianen/django-python3-ldap)? –

ответ

0

Это почти то же самое, вы должны закодировать свой конкретный поиск о LDAP (сэм AccountName обычно), когда вы хотите, как правило, после того, как отправить вызов, идущий от весовую входа.

userDN = "" 
passwordUser = "" 
base_dn = 'node where we start to seach, from your AD structure' 
#attrs = ['description', 'telephoneNumber', 'title', 'mail' , 'lastLogon', 'memberOf', 'accountExpires',] 
attrs = [] 

def myAccount(request): 
    con = ldap.initialize("ldap://ldapserver") 
    con.simple_bind_s(userDN, passwordUser) 
    filter = '(sAMAccountName=' + "loginName" + ')' 
    user = con.search_s(base_dn, ldap.SCOPE_SUBTREE, filter, attrs) 
    con.unbind() 

    userInfoList = [] 
    for key, value in user[0][1].items(): 
     userInfoList += [userInfo(key, value)] 

    return render_to_response('template.html',{'userInfoList':userInfoList, 'dnUser': user[0][0]}, context_instance = RequestContext(request)) 

В коде ниже, конкретный шаблон вызов к MyAccount методу, в этом методе мы используем Ldap дополнение для выполнения поиска по LDAP, созданный пользователем, уполномоченным в DN для выполнения поиска. После этого мы восстанавливаем информацию, полученную в результате этого поиска.

Надеюсь, это поможет. Любое сомнение, которое вы могли бы получить, просто дайте мне знать :)

+0

Спасибо за ан. Я реализовал его выше. Но я хочу реализовать аутентификацию, используя настройки Django-Ldap по умолчанию. Как это можно сделать? –

+0

Насколько я знаю, Django не имеет настроек ldap по умолчанию. Вам необходимо установить модуль django-ldap. –

+0

Кстати, не могли бы вы вознаградить мой дар и оценить мой ответ? Спасибо друг. :) –