2013-03-13 2 views
1

사용자가 Active Directory에 대해 인증해야하는 장고 기반 인트라넷 응용 프로그램을 작성 중입니다. 나는 django-auth-ldap을 찾았지만, 아직 개발할 수있는 로컬 LDAP 서버를 설정하기 위해 무엇을해야할지 전혀 모르고 있습니다.장고 인증을위한 LDAP 설정

AD LDS가 설치되었지만 도메인 컨트롤러가 필요하며 일부 읽기 때문에 내가 Windows 7에서 설정할 수 없다고 알려주었습니다. 그래서 OpenLDAP를 대신 사용하기로 결정 했으므로 작동하는 것 같습니다. ,하지만 제가 읽은 튜토리얼은 특히 에 명확하지 않았습니다. 어떻게 데이터를 추가 할 수 있습니까?

아무에게도 OpenLDAP 또는 Active Directory가 될 수있는 로컬 실행 LDAP 서비스에 대해 장고 사용자 프로필을 추가하고 성공적으로 인증하려면 어떻게해야합니까? 그게 가능하다면, 나중에 성공적으로 설정하는 것)?

답변

1

이미 경우 지금 그러나 다만하여이를 해결 한 수

당신은 설정에 LDAP 저장소 (완료)가 필요합니다. 바인딩 할 수있는 사용자 개체를 만들어야합니다. 이 작업은 LDIF 파일이나 유사한 방법을 사용하여 수행됩니다. LDAP db를 시각화하는 데 매우 유용한 도구는 'Apache Directory Studio'입니다. ldif가 나타날 수있는 방법의 예 :

dn:cn=myuser,cn=localhost 
changetype: modify 
add: cn=myuser 
userPassword: password01 

이것은 스키마에 따라 다릅니다. https://pythonhosted.org/django-auth-ldap/

을이 좋은 (워드 프로세서)에서 예입니다 : 내가보기 엔 당신이 특정 구현을위한 장고 문서를 읽어 보는 것이 좋습니다

import ldap 
from django_auth_ldap.config import LDAPSearch 

AUTH_LDAP_BIND_DN = "" 
AUTH_LDAP_BIND_PASSWORD = "" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com", 
ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 

하지만 LDIF를 통해 사용자를 추가했다 맡기 "CN = localhost "를 입력하면 검색 필드에 사용할 dn이 표시됩니다. 문서 메모에서 원하는 경우 전체 디렉토리를 검색 할 수 있습니다.

그것 무슨 일이 일어나고 있는지 명확하지 않으면 :

  1. 가져 오기 LDAP를 모듈
  2. 가져 오기의 ldapsearch 기능을? 장고 모듈
  3. 에서 설정 빈 바인드 DN (이 완전한 사용자 이름과 같다. 예를 들어, UID = 참고 MyUser, DC = com)을
  4. 빈 바인드 암호
  5. 가 검색을 수행 설정합니다. 형식과 같이 : ("기본", 범위, searchfilter) 당신은 파이썬의 표준 LDAP 모듈을 사용하여 테스트 할 수 있습니다

: 정말 중요하지만, "ldap.SCOPE_SUBTREE"뿐만

import ldap 
ld = ldap.initialize("ldaps://acme.com:636") 
ld.bind_s("userDN","Password") 
ld.search_s("cn=acme.com",ldap.SCOPE_SUBTREE,"uid=myuser") 

를, "LDAP .SCOPE_BASE "등은 정수입니다. 그래서 대신 0, 1, 2를 전달할 수 있습니다.

오래 전에 해결해도 행운을 비네.