Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django项目中使用django_auth_ldap?_Django_Ldap_Django Auth Ldap - Fatal编程技术网

如何在django项目中使用django_auth_ldap?

如何在django项目中使用django_auth_ldap?,django,ldap,django-auth-ldap,Django,Ldap,Django Auth Ldap,下面是我们项目的设置片段。问题是它似乎没有连接到LDAP服务器。我在django_auth_ldap模块中添加了一对print语句,当我运行服务器并尝试登录时,这些语句都没有打印出来 任何人都能帮助我们观察一下环境,了解出了什么问题吗 settings.py import ldap from django_auth_ldap.config import LDAPSearch, GroupOfNamesType AUTH_LDAP_SERVER_URI = "ldap://ldap.corper

下面是我们项目的设置片段。问题是它似乎没有连接到LDAP服务器。我在django_auth_ldap模块中添加了一对print语句,当我运行服务器并尝试登录时,这些语句都没有打印出来

任何人都能帮助我们观察一下环境,了解出了什么问题吗

settings.py

import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
AUTH_LDAP_SERVER_URI = "ldap://ldap.corperate.com:port"
AUTH_LDAP_BIND_DN = "CN=Network Inventory Management,OU=Service Accounts,DC=corperate,DC=com"
AUTH_LDAP_BIND_PASSWORD = "PASSWORD"
AUTH_LDAP_CONNECTION_OPTIONS={
    ldap.OPT_DEBUG_LEVEL:1,
    ldap.OPT_REFERRALS:0,
}
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=accounts,dc=corperate,dc=com",ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,dc=corperate,dc=com", ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")


AUTH_LDAP_USER_ATTR_MAP = {
    "user_id": "employeeid",
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail"
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
    "location":"physicalDeliveryOfficeName",
    "employee_id":"employeeID",
    "phone":"telephoneNumber",
    "account_status":"userAccountControl",
    "employee_id":"employeeID",
    "distinguished_name":"distinguishedName",
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_staff": "CN=Network Inventory Management Group,OU=django,OU=Groups,DC=corperate,DC=com",}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)


LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'stream_to_console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler'
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'django_auth_ldap': {
            'handlers': ['stream_to_console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}
有错误信息吗? 启用日志记录可能会有所帮助。将其放入设置文件:

import logging, logging.handlers
logfile = "/tmp/django-ldap-debug.log"
my_logger = logging.getLogger('django_auth_ldap')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
   logfile, maxBytes=1024 * 500, backupCount=5)
my_logger.addHandler(handler)


非常感谢。日志记录实际上起了作用。问题是没有连接到LDAP,因为我丢失了一个我们使用的端口号。上面的设置是我当前使用的设置。
tail -f /tmp/django-ldap-debug.log