Аутентификация X509 с использованием платформы django rest

#authentication #django-rest-framework #x509certificate

Вопрос:

Мне нужна помощь по аутентификации X509 в drf . Я использовал пользовательский сервер, который поддерживает аутентификацию JWT .. я переопределил метод аутентификации следующим образом :

 class ModelBackendCustom(ModelBackend):
    """
    This backend is to be used when the server is handling authentication
    from an LDAP or Active Directory service.
    By default, the ``authenticate`` method creates ``User`` objects for
    usernames that don't already exist in the database.  Subclasses can disable
    this behavior by setting the ``create_unknown_user`` attribute to
    ``False``.
    """
    def authenticate(self, request, username=None, password=None, **kwargs):
        logger.info("Trying to authenticate the user %s against the database" % username)
        user = super(ModelBackendCustom, self).authenticate(request, username, password, **kwargs)
        
        # Check DB groups against mapping
        if user:
            if user.is_authenticated:
                logger.info("Authenticate the user %s against the database with success" % username)
                user = self.configure_user(request, user)
                return user
            else:
                logger.info("Authenticate the user %s against the database failed by giving a non authenticated user" % username)
        else:
            logger.info("Authenticate the user %s against the database failed" % username)


        return None
 

Я хочу использовать тот же метод и ту же технику, чтобы использовать заголовки запроса, чтобы получить идентификаторы issuer_id и subject_id для проверки наличия в базе данных .
Я пытаюсь установить аутентификацию X509 …
Проблема, с которой я столкнулся, заключается в том, что я не могу получить доступ к заголовкам запросов из-за значения «Нет».
Мне нужно знать, как решить эту проблему или есть ли конкретный способ реализовать аутентификацию, получая заголовки из Njinx сертификата X509 .
Спасибо