温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-09-28 10:25:19 阅读:341 作者:柒染 栏目:大数据
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Django如何配置Windows AD域进行账号认证,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

代码如下:

 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]1011#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'1516#允许认证用户的路径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)")2021#通过组进行权限控制22AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,ou=test,dc=test,dc=intra",23    ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"24)2526AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()2728#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#通过组进行权限控制end3435#如果ldap服务器是Windows的AD,需要配置上如下选项36AUTH_LDAP_CONNECTION_OPTIONS = {37    ldap.OPT_DEBUG_LEVEL: 1,38    ldap.OPT_REFERRALS: 0,39}4041#当ldap用户登录时,从ldap的用户属性对应写到django的user数据库,键为django的属性,值为ldap用户的属性42AUTH_LDAP_USER_ATTR_MAP = {43    "first_name""givenName",44    "last_name""sn",45    "email""mail"46}4748#如果为True,每次组成员都从ldap重新获取,保证组成员的实时性;反之会对组成员进行缓存,提升性能,但是降低实时性49# AUTH_LDAP_FIND_GROUP_PERMS = True 
 

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

看完上述内容,你们掌握Django如何配置Windows AD域进行账号认证的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/3554508/blog/4381712

AI

开发者交流群×