Django с аутентификацией пользователей по LDAP

Я работаю в проекте Django и LDAP.

На данный момент, с моим базовым кодом, пользователь может войти в систему после установления соединения с ldap (я использую библиотеку ldap3)

@csrf_exempt 
def login_view(request):
    if request.method == "POST":
        data = json.loads(request.body.decode('utf-8'))
        cn = data["cn"]
        password = data["password"]
        user = Connection(server, 'cn='+cn+',ou=users,dc=example,dc=com', password, auto_bind=True)
        if user is not None: 
            return HttpResponse('authenticated')
        else:
            return HttpResponseForbidden('wrong username or password')

Я столкнулся с проблемой, когда хочу реализовать токены (JWT), я должен настроить бэкенд аутентификации в Django, чтобы я мог использовать функцию authenticate() и добавить токены.

У меня проблема с пониманием логики, Django сохранит аутентифицированного пользователя в базе данных, но если мы изменим пароль пользователя в LDAP, мы всегда сможем войти под пользователем в базе данных, что не удобно!

Также, как мы можем настроить бэкенд аутентификации Django для корректного входа в систему с помощью LDAP?

Спасибо

Вернуться на верх