I have used Django in python3 to develop website. Now I want to implement LDAP login.
In our LDAP server, a fixed authentication string should be send in the request to LDAP server. That is, in headers of the request, authentication item should be: "example_auth"
However, in connection class offered by ldap3 package, authentication could only be set to SIMPLE, ANONYMOUS, SASL, NTLM.
Then how could I set authentication to my authentication code for LDAP login?
class LDAPBackend:
def authenticate(self, request, username=None, password=None, **kwargs):  
    # set username to lowercase for consistency
    username = username.lower()
    # get the bind client to resolve DN
    logger.info('authenticating %s' % username)
    # set your server
    server = Server("example.com/REST/json/service/loginStaff", port=389)
    try:   
        conn = Connection(server, user=username, password=password, auto_bind=True,)
        conn.open()
        conn.bind()   
    except LDAPBindError as e:
        logger.info('LDAP authentication failed')
        logger.info(e)
        return None
    user = UserModel.objects.update_or_create(username=username)
    return user
def get_user(self, user_id):
    try:
        return UserModel._default_manager.get(pk=user_id)
    except UserModel.DoesNotExist:
        return None