前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django-auth-ldap 配置方法

Django-auth-ldap 配置方法

作者头像
BigYoung小站
发布2020-05-05 10:18:20
3.1K0
发布2020-05-05 10:18:20
举报
文章被收录于专栏:BigYoung小站BigYoung小站
使用场景

公司内部使用Django作为后端服务框架的Web服务,当需要使用公司内部搭建的Ldap 或者 Windows 的AD服务器作为Web登录认证系统时,就需要这个Django-auth-ldap第三方插件

插件介绍

Django-auth-ldap是一个Django身份验证后端,可以针对LDAP服务进行身份验证。有许多丰富的配置选项可用于处理用户,组和权限,便于对页面和后台的控制 插件介绍地址:Django-auth-ldap

安装方法

注意:需先正确安装python3环境、pip3 和 Django环境


前提: 需要先安装python-ldap > = 3.0 第一步:安装Django-auth-ldap

代码语言:javascript
复制
pip install django-auth-ldap

第二步:在setting.py中配置django-auth-ldap 模块

要在Django项目中使用auth认证,请将django_auth_ldap.backend.LDAPBackend添加 到AUTHENTICATION_BACKENDS。不要向INSTALLED_APPS添加任何内容。 添加完效果如下:

代码语言:javascript
复制
AUTHENTICATION_BACKENDS  =  [
  'django_auth_ldap.backend.LDAPBackend' ,]

第三步:在django项目的settings.py中配置如下代码:

代码语言:javascript
复制
#Django-auth-ldap 配置部分

import ldap
from django_auth_ldap.config import LDAPSearch,GroupOfNamesType
#修改Django认证先走ldap,再走本地认证

AUTHENTICATION_BACKENDS = [
   'django_auth_ldap.backend.LDAPBackend',
   'django.contrib.auth.backends.ModelBackend',
]
#ldap的连接基础配置
AUTH_LDAP_SERVER_URI = "ldap://xxx.xxx.xxx.xxx:389" # ldap or ad 服务器地址AUTH_LDAP_BIND_DN = "CN=administrator,CN=Users,DC=test,DC=com" # 管理员的dn路径AUTH_LDAP_BIND_PASSWORD = 'testpassword' # 管理员密码#允许认证用户的路径
AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=test,DC=test,DC=intra",
                                  ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
#通过组进行权限控制
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,ou=test,dc=test,dc=intra",
   ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
#is_staff:这个组里的成员可以登录;is_superuser:组成员是django admin的超级管理员;is_active:组成员可以登录django admin后台,但是无权限查看后台内容
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_staff": "cn=test_users,ou=groups,OU=test,DC=test,DC=com",
    "is_superuser": "cn=test_users,ou=groups,OU=tset,DC=test,DC=com",
}#通过组进行权限控制end

#如果ldap服务器是Windows的AD,需要配置上如下选项

AUTH_LDAP_CONNECTION_OPTIONS = {
   ldap.OPT_DEBUG_LEVEL: 1,
   ldap.OPT_REFERRALS: 0,
}
#当ldap用户登录时,从ldap的用户属性对应写到django的user数据库,键为django的属性,值为ldap用户的属性

AUTH_LDAP_USER_ATTR_MAP = {
                            "first_name": "givenName",
                            "last_name": "sn",
                            "email": "mail"}
#如果为True,每次组成员都从ldap重新获取,保证组成员的实时性;反之会对组成员进行缓存,提升性能,但是降低实时性# AUTH_LDAP_FIND_GROUP_PERMS = True

以上配置完毕后,登录服务器后台地址:http://serverurl:8080/admin 使用ldap or ad中指定的group里的用户进行登录认证。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigYoung小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用场景
  • 插件介绍
  • 安装方法
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档