【问题标题】:How do I authorize separetely from authentication using django-auth-ldap如何使用 django-auth-ldap 与身份验证分开授权
【发布时间】:2014-02-07 04:39:49
【问题描述】:

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

【问题讨论】:

    标签: django-authentication django-1.3 django-auth-ldap


    【解决方案1】:

    在您的登录视图中,我将检查本地数据库并在用户通过身份验证后以编程方式添加权限,请参阅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 等)创建与数据库的连接,并查询包含您需要的权限的表。

    【讨论】:

      猜你喜欢
      • 2013-03-18
      • 2020-03-07
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 2012-09-06
      • 2016-02-15
      相关资源
      最近更新 更多