2016-07-27 2 views
1

사용자 이름과 암호를 사용하는 간단한 양식을 사용하고 LDAP 서버를 사용하여 해당 사용자를 인증하려고합니다. 대시 보드의 실제 포털은 PHP로 작성되었지만 django (및 pyldap)를 사용하여 다시 작성해야합니다. 내 settings.py 파일에서 다음과 같은 설정을했습니다 (URI를 수정 한 것은 내가 근무하는 회사에서 사용했기 때문입니다). 내 views.py에서Django 및 LDAP를 사용하여 인증 할 수 없음

# LDAP Settings 
# Set backends 
AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend', 
) 

# LDAP Server 
AUTH_LDAP_SERVER_URI = 'ldaps://eddie.xy.zzzzz.com:3268' 
AUTH_LDAP_START_TLS = True 

# Search settings 
AUTH_LDAP_BIND_DN = "" 
AUTH_LDAP_BIND_PASSWORD = "" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=xy,dc=zzzzz,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 

, 나는 포스트 "= 방법,

from django.shortcuts import render 
from django.contrib.auth import authenticate 
from django_auth_ldap.backend import LDAPBackend # Greyed out 

def login(request): 
    if request.method == 'POST': 
     # Get info from POST request 
     usr = request.POST['username'] 
     pas = request.POST['password'] 

     # Authenticate the user using provided data 
     user = authenticate(username=usr, password=pas) 
     print(str(user)) 

     if user is not None: 
      return render(request, 'dashboard/index.html', {}) 
     else: 
      print("The username and password were incorrect.") 
      return render(request, 'dashboard/error.html', {}) 

    elif request.method == 'GET': 
     return render(request, 'dashboard/login.html', {}) 

login.html이의 양식 간단한 HTML 코드를 포함 (단지 물건을 테스트) 코드를 다음 한 "action ="/ login/". Index.html은 간단한 "성공"메시지를 포함하고 있으며 error.html은 간단한 "wrong!" 메시지. 내가 만든 양식으로 내 (작업) 자격 증명을 사용하고 있지만 성공 메시지를 얻을 수 없습니다.

at = LDAPBackend() 
user = authenticate(username=usr, password=pas) 

대신 위의 코드에서 사용을 인증 방법 : 나는 또한 시도 무엇

이 있었다. 불행히도 나는 똑같은 행동을하고있다. 나는 무엇을 놓치고, 내 실수는 어디에 있습니까?

답변

0

Finnaly, 나는 그것을 할 수 있습니다. 이 변수를 설정해야했습니다 :

AUTH_LDAP_USER_DN_TEMPLATE = "%(user)s" 

이제 완벽하게 작동합니다. 이것이 다른 사람들을 도울 수 있기를 바랍니다. 어쨌든 고마워!

좋은 하루 되세요!

관련 문제