Требуется помощь в настройке значений для "is_staff" и "is_superuser" для Django пользователей, прошедших проверку подлинности LDAP - PullRequest
0 голосов
/ 15 января 2020

Я новичок в Django и LDAP. Я создаю Django приложение с аутентификацией LDAP в качестве системы входа в систему. Я могу подключиться к серверу LDAP и пройти аутентификацию, используя существующую учетную запись из LDAP, которая затем заполняет мою таблицу MySQL database auth_user , чтобы получить строку данных типа this :

Итак, мой вопрос: как я могу установить значение для "is_staff" и "is_superuser" равным 1?

- настройка LDAP внутри settings.py -

AUTH_LDAP_SERVER_URI = "ldap://ldap.m*****.com.my:389"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("o=m*****net", ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail",
}

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
    )

# logging
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

1 Ответ

0 голосов
/ 15 января 2020

Параметр AUTH_LDAP_USER_FLAGS_BY_GROUP можно использовать для сопоставления групп с флагами пользователя

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_active": "cn=active,ou=django,ou=groups,dc=example,dc=com",
    "is_staff": "cn=staff,ou=django,ou=groups,dc=example,dc=com",
    "is_superuser": "cn=superuser,ou=django,ou=groups,dc=example,dc=com",
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...