django-auth-ldap安装无法正常工作

时间:2017-11-01 05:03:29

标签: python django authentication ldap

我正在尝试在我的Windows系统中安装django-auth-ldap它显示以下错误

  

\ pip-build-3x6rkxb4 \ pyldap \ modules \ errors.h(8):致命错误C1083:无法打开包含文件:' lber.h':没有这样的文件或目录   错误:命令' C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ BIN \ x86_amd64 \ cl.exe'退出状态2失败

# LDAP auth settings.
LDAP_AUTH_URL = os.environ.get("LDAP_AUTH_URL", "ldap://xxx.xx.xx.xx:389")
LDAP_AUTH_USE_TLS = False

LDAP_AUTH_SEARCH_BASE = "dc=maxcrc,dc=com" 
LDAP_AUTH_OBJECT_CLASS = "inetOrgPerson"
LDAP_AUTH_USER_FIELDS = {
    "username": "uid",
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail",
}
LDAP_AUTH_USER_LOOKUP_FIELDS = ("username",)
LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data"
LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations"
LDAP_AUTH_FORMAT_SEARCH_FILTERS = "django_python3_ldap.utils.format_search_filters"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_openldap"
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = None 
LDAP_AUTH_CONNECTION_USERNAME = "cn=Manager,dc=maxcrc,dc=com" 
LDAP_AUTH_CONNECTION_PASSWORD = "*****" 

LDAP_AUTH_CONNECT_TIMEOUT = None
LDAP_AUTH_RECEIVE_TIMEOUT = None

AUTHENTICATION_BACKENDS = (
    "django_python3_ldap.auth.LDAPBackend",
)

我的版本是 Python - 3.6.3(64位) Django - 1.11.6(64位) Windows 10 - 64位

由于

2 个答案:

答案 0 :(得分:2)

由于其依赖性,需要编译

django-auth-ldap。特别是在Windows上,我建议尝试纯Python解决方案。我使用的效果非常好的是django-python3-ldap,你可以在这里找到:

https://github.com/etianen/django-python3-ldap

以下是我设置设置的方法,以便我们可以直接使用这些值与ldap3进行连接:

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'django_python3_ldap.auth.LDAPBackend',
]

# LDAP Connection Settings
LDAP_AUTH_HOST = 'ldap.example.com'
LDAP_AUTH_PORT = 636
LDAP_AUTH_URL = 'ldaps://{host}:{port}'.format(
    host=LDAP_AUTH_HOST,
    port=LDAP_AUTH_PORT,
)
LDAP_AUTH_CONNECTION_USERNAME = 'ldapuser'
LDAP_AUTH_CONNECTION_PASSWORD = 'ldappassword'

# Initiate TLS on connection.
LDAP_AUTH_USE_TLS = True

# The LDAP search base for looking up users.
LDAP_AUTH_SEARCH_BASE = "ou=People,dc=example,dc=com"

# The LDAP class that represents a user.
LDAP_AUTH_OBJECT_CLASS = "shadowAccount"

# User model fields mapped to the LDAP
# attributes that represent them.
LDAP_AUTH_USER_FIELDS = {
    "username": "uid",
}

# A tuple of fields used to uniquely identify a user.
LDAP_AUTH_USER_LOOKUP_FIELDS = ("username",)

README还包含Active Directory的说明,如果这是您要连接的内容。祝你好运!

答案 1 :(得分:0)

对于那些像我一样由于某种原因而不能离开django-auth-ldap的人:我解决了从此处下载并安装python-ldap的二进制轮子的问题

https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap

我希望这对您有帮助