我的设置:Django-3.0、Python-3.8、django_auth_ldap
我的组织中有 LDAP 服务器(Active Directory 服务器)。我正在构建一个 Django 应用程序,它为所有用户提供一些操作。
我知道 Django 具有内置的用户身份验证机制,但是如果用户存在于用户模型数据库中,它会进行身份验证。
但我的要求是。
所有用户条目都在 LDAP 服务器(Active Directory)中。使用正确的用户凭据 LDAP 服务器对我进行身份验证。
我在 Django 'accounts'应用程序中创建了一个登录页面,
1. 每当我从登录页面输入用户名和密码时,它应该使用我的组织 LDAP 服务器进行身份验证。
2. 登录后,我必须为登录用户保持 5 分钟的活动时间。(Django 身份验证会话)
我看到django_auth_ldap包为我的目的提供了一些见解。
我在settings.py 中有这些内容。
import ldap
##Ldap settings
AUTH_LDAP_SERVER_URI = "ldap://myldapserver.com"
AUTH_LDAP_CONNECTION_OPTIONS = {ldap.OPT_REFERRALS : 0}
AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s, OU=USERS,dc=myldapserver, dc=com"
AUTH_LDAP_START_TLS = True
#Register authentication backend
AUTHENTICATION_BACKENDS = [
"django_auth_ldap.backend.LDAPBackend",
]
Run Code Online (Sandbox Code Playgroud)
在views.py 中调用身份验证。
from django_auth_ldap.backend import LDAPBackend
def accounts_login(request):
username = ""
password …Run Code Online (Sandbox Code Playgroud)