前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django配置Windows AD域进行账号认证

Django配置Windows AD域进行账号认证

作者头像
BigYoung小站
发布2020-05-05 22:40:43
2.4K0
发布2020-05-05 22:40:43
举报
文章被收录于专栏:BigYoung小站

我们使用Django开发网站后台是,会有账号密码认证登录的需求,一般公司内部会使用Windows 的AD 或者Linux下的OpenLDAP进行账号密码认证。以下为Django使用Windows AD进行账号认证的配置,代码全部配置在Django的setting.py 文件中,代码如下:

代码语言:javascript
复制
 1#Django-auth-ldap 配置部分 此部分代码配置在django的settings.py里
 2import ldap
 3from django_auth_ldap.config import LDAPSearch,GroupOfNamesType
 4
 5#修改Django认证先走ldap,再走本地认证
 6AUTHENTICATION_BACKENDS = [
 7    'django_auth_ldap.backend.LDAPBackend',
 8    'django.contrib.auth.backends.ModelBackend',
 9]
10
11#ldap的连接基础配置
12AUTH_LDAP_SERVER_URI = "ldap://192.168.146.21:389"
13AUTH_LDAP_BIND_DN = "CN=administrator,CN=Users,DC=test,DC=com"
14AUTH_LDAP_BIND_PASSWORD = 'testpassword'
15
16#允许认证用户的路径
17# AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=test,DC=test,DC=com", ldap.SCOPE_SUBTREE, "(&(objectClass=person)(sAMAccountName=%(user)s))")
18AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=test,DC=test,DC=intra",
19                                   ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
20
21#通过组进行权限控制
22AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,ou=test,dc=test,dc=intra",
23    ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
24)
25
26AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
27
28#is_staff:这个组里的成员可以登录;is_superuser:组成员是django admin的超级管理员;is_active:组成员可以登录django admin后天,无权限
29AUTH_LDAP_USER_FLAGS_BY_GROUP = {
30    "is_staff": "cn=test_users,ou=groups,OU=test,DC=test,DC=com",
31    "is_superuser": "cn=test_users,ou=groups,OU=tset,DC=test,DC=com",
32}
33#通过组进行权限控制end
34
35#如果ldap服务器是Windows的AD,需要配置上如下选项
36AUTH_LDAP_CONNECTION_OPTIONS = {
37    ldap.OPT_DEBUG_LEVEL: 1,
38    ldap.OPT_REFERRALS: 0,
39}
40
41#当ldap用户登录时,从ldap的用户属性对应写到django的user数据库,键为django的属性,值为ldap用户的属性
42AUTH_LDAP_USER_ATTR_MAP = {
43    "first_name": "givenName",
44    "last_name": "sn",
45    "email": "mail"
46}
47
48#如果为True,每次组成员都从ldap重新获取,保证组成员的实时性;反之会对组成员进行缓存,提升性能,但是降低实时性
49# AUTH_LDAP_FIND_GROUP_PERMS = True 

配置完成后,用户通过admin后台登录时,如果域用户不在指定的group中时,会提示登录失败,但是在auth_user用户表中,会有这个用户的属性,配置了superuser的可以登录后台,代码中配置的默认账号,可以直接登录admin后天,以管理员的身份登录。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档