2

django アプリの認証ユーザーに問題があります。Python 3.5 と Django 1.10 を使用しています。

ユーザーがデータベースからの実際のユーザーであるかどうかを確認するための単純なバインド構成を作成しました。

    username = request.POST['username']
    password = request.POST['password']

    server = Server(LDAP_AUTH_URL)
    c = Connection(server, user=LDAP_AUTH_CONNECTION_USERNAME, password=LDAP_AUTH_CONNECTION_PASSWORD)

    c.open()
    c.bind()

    if c.bind():
        user_search_filter = '(uid={})'.format(username)
        c.search(search_base=LDAP_AUTH_SEARCH_BASE,
                 search_filter=user_search_filter,
                 search_scope=SUBTREE)

    username = c.response[0]['dn']
    if c.rebind(user=username, password=password):
        return HttpResponseRedirect(next)

しかし今、私はそれをどうするかわかりません.djangoではもちろん次のようなものがあります:

    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            auth.login(request, user)
            return HttpResponseRedirect(next)
        else:
            return render(request, 'login.html', {'error_message': 'Your account has been disabled'})
    else:
        return render(request, 'login.html', {'error_message': 'Invalid login'})

ただし、この状況では、LDAP 承認からではなく、ベースにユーザー アカウントが必要です。

「@login_required」を使用して他のビューにアクセスするためにldapでログを記録しているときに、djangoから承認を得たいと思います

Python >3 の ldap と ldap3 についての私の考えに何か問題があるのか​​もしれません。

誰でも私を助けたり、有用なリンクを教えてくれますか?

4

2 に答える 2