我一直在研究一個針對LDAP進行身份驗證的Django應用程序。我在管理界面中創建了權限和組。在開發模式下,我的兩個後端都處於活動狀態使用LDAP身份驗證但ModelBackend授權
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
Django嘗試在其所有身份驗證後端進行身份驗證。無論成功如何,它都會使用授予用戶的ModelBackend授權(權限和組)。
但是,當禁用'django.contrib.auth.backends.ModelBackend'Django不使用標準的授權方法。在生產環境中,我希望用戶僅針對LDAP進行身份驗證。
我的問題:
是否有禁用ModelBackend授權,但仍然使用ModelBackend授權的選項。
編輯
首先說明在docs of django-auth-ldap:
注意LDAPBackend不從ModelBackend繼承。可以通過將LDAPBackend配置爲從LDAP服務器繪製組成員資格來使用LDAPBackend。但是,如果您想爲單個用戶分配權限或將用戶添加到Django中的組中,則需要安裝兩個後端:
但我仍然感到困惑。這沒有任何技術上的原因。當兩個後端都激活並通過LDAP進行身份驗證時,Django仍然可以使用Django權限。