如何使用 django-auth-ldap 从身份验证中分离授权



我正在创建一个django应用程序,该应用程序需要对我们组织的LDAP服务器进行身份验证,我已经使用django-auth-ldap成功完成了这项工作。身份验证后,我需要根据本地数据库授权每个经过身份验证的用户,以检查他们是否具有使用该应用程序的权限。我该怎么做?我试图浏览django-auth-ldap的文档,但找不到任何相关的内容。

在您的登录视图中,我将检查本地数据库并在用户通过身份验证后以编程方式添加权限,请参阅 https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization

 if user.is_active:
     login(request, user)
     #your code to query database and add permissions
     _check_and_set_permissions(request)
     return redirect('login_success')

如果你需要检查的数据库与你指定供 Django ORM 使用的数据库不同

 DATABASES = {
     'default': {
        'NAME': 'DEMODATABASE',
        'ENGINE': 'sqlserver_ado',
        'HOST': '127.0.0.1',
     }
   }

然后,只需使用您喜欢的驱动程序/SQL 表达式语言(pymssql、SA、pyMySQLdb 等)创建与数据库的连接,并查询包含所需权限的表。