2011-05-31 13 views
5

के माध्यम से Django LDAP प्रमाणीकरण मैं कॉर्पोरेट सक्रिय निर्देशिका सर्वर के माध्यम से अपने उपयोगकर्ता को प्रमाणित करने का प्रयास कर रहा हूं। मैं इसे ठीक से कॉन्फ़िगर करने में असमर्थ हूं, मुझे पता है कि एलडीएपी काम करता है मेरे पास एक मीडियाविकि है जो कॉन्फ़िगर किया गया है और पर सक्रिय निर्देशिका सर्वर पर प्रमाणीकृत है।सक्रिय निर्देशिका 2008

सिस्टम:

Active Directory 2008 
    Django (1, 3, 0, 'final', 0) 
    django-auth-ldap 1.0.9 

यहाँ मैं भी नए URI

LDAP_SERVER_URI = 'ldaps://ad.exemple.com:636' 
जोड़कर ssl तरह से करने की कोशिश की settings.py

from django_auth_ldap.config import LDAPSearch 
    import logging 

    # makes sure this works in Active Directory 
    ldap.set_option(ldap.OPT_REFERRALS, 0) 

    LDAP_SERVER_URI = 'ldap://ad.exemple.com' 
    AUTH_LDAP_BIND_DN = 'my_user' 
    AUTH_LDAP_BIND_PASSWORD = 'my_pass' 
    AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=exemple,dc=com', ldap.SCOPE_SUBTREE, '(SAMAccountName=%(user)s)') 

    # Populate the Django user from the LDAP directory. 
    AUTH_LDAP_USER_ATTR_MAP = { 
      "first_name": "givenName", 
      "last_name": "sn", 
      "email": "mail" 
    } 

    # This is the default, but I like to be explicit. 
    AUTH_LDAP_ALWAYS_UPDATE_USER = True 

    AUTHENTICATION_BACKENDS = (
      'django_auth_ldap.backend.LDAPBackend', 
      'django.contrib.auth.backends.ModelBackend', 
    ) 

में मेरे विन्यास है

मैं मुख्य इस्तेमाल किया समूह उपयोगकर्ता को खोजने के लिए मुझे किसी विशेष समूह की आवश्यकता नहीं है जिसे मैं प्रमाणीकृत करना चाहता हूं।

WARNING 2011-05-31 16:50:19,429 backend 3968 140632428340992 Caught LDAPError while authenticating my_user: INVALID_CREDENTIALS({'info': '80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 525, v1772', 'desc': 'Invalid credentials'},) 
    [31/May/2011 16:50:19] "POST /admin/ HTTP/1.1" 200 9648 

इस त्रुटि दिखाई दे रही है और मैंने पाया कि मैं इस

[email protected] 

तरह उपयोगकर्ता नाम सेट करने के लिए कोशिश करनी चाहिए LDAP त्रुटि DSID-0C0903AA की तलाश:

त्रुटि संदेश यह त्रुटि देता है यह काम नहीं करता है, यह त्रुटि देता है:

ERROR 2011-05-31 16:55:38,947 config 6505 139868662060800 search_s('dc=ubilium,dc=loc', 2, '(SAMAccountName=my_user)') raised OPERATIONS_ERROR({'info': '000004DC: LdapErr: DSID-0C0906DD, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1772', 'desc': 'Operations error'},) 
    DEBUG 2011-05-31 16:55:38,947 backend 6505 139868662060800 Authentication failed for my_user 

क्या किसी के पास कोई सुराग है इसे जोड़ने के लिए डब्ल्यू?

उत्तर

1

आपको जो पहली त्रुटि मिल रही है वह 525 के उपकोड के साथ एलडीएपी 49 है जिसका अर्थ है कि उपयोगकर्ता नहीं मिला। अर्थात। आपका बांध डीएन सही नहीं है।

आपका दूसरा प्रयास, userPrincipalName स्वरूपण का उपयोग कर असफल हो जायेगी, के रूप में आपके विन्यास का कहना है: मैं अगर आश्चर्य (SAMAccountName=%(user)s)

: AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=exemple,dc=com', ldap.SCOPE_SUBTREE, '(SAMAccountName=%(user)s)')

इस प्रकार आप के फिल्टर में उपयोगकर्ता नाम में पारित उपयोग करने के लिए कोशिश कर रहे हैं यह हर छोर पर एक अतिरिक्त s है? अर्थात। (SAMAccountName=%(user)) अधिक सही होगा?

यह क्या कर रहा है, $ (उपयोगकर्ता) चर के लिए, मुझे एडी में ऑब्जेक्ट ढूंढें जिसका sAMAccountName विशेषता उस मान से मेल खाती है, और उसके बाद उस डीएन को बाइंड डीएन के रूप में वापस कर दें। लेकिन आपको सही डीएन नहीं मिल रहा है और इस प्रकार एलडीएपी 49 - 525 त्रुटि हो रही है।