首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Django和ldap进行身份验证

无法使用Django和ldap进行身份验证
EN

Stack Overflow用户
提问于 2016-07-27 20:27:20
回答 1查看 130关注 0票数 1

我使用一个简单的表单,它接受用户名和密码,并尝试使用ldap服务器对该用户进行身份验证。仪表板的实际门户是用php编写的,但我必须使用django (和pyldap)重写它。在我的settings.py文件中,我有以下设置(我修改了URI,因为我工作的公司使用它)。

代码语言:javascript
复制
# 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)")

在我的views.py中,我有以下代码(只是为了测试)

代码语言:javascript
复制
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', {})

登录包含一个简单的HTML代码和一个表单,并带有method="post“action=”/ login.html /“。Index.html包含一条简单的“成功”消息,而error.html包含一条简单的“错误!”消息。我正在使用我制作的表单中的(工作)凭据,但我无法获得成功消息。

我还尝试了这样做:

代码语言:javascript
复制
at = LDAPBackend()
user = authenticate(username=usr, password=pas)

而不是上述代码中使用的身份验证方法。不幸的是,我得到了同样的行为。我错过了什么,我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 22:52:47

最后,我设法做到了。我必须设置这个变量:

代码语言:javascript
复制
AUTH_LDAP_USER_DN_TEMPLATE = "%(user)s"

现在它工作得很完美。我希望这能对其他人有所帮助。不管怎样,谢谢你!

祝你今天愉快!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38612960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档