Py学习  »  问与答

Django使用windows AD进行用户认证

痴狂的剑 • 8 年前 • 5845 次点击  

Django使用windows AD进行用户认证,windows server上除了安装AD,还需要安装其他的服务吗?

使用django-auth-ldap进行AD连接,怎么进行测试,有连接测试的工具推荐吗?

求教各位大神~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1469
 
5845 次点击  
文章 [ 8 ]  |  最新文章 8 年前
liantian
Reply   •   1 楼
liantian    8 年前

@痴狂的剑 是的...就是验证ad后,创建or使用本地的同名账户登录。

痴狂的剑
Reply   •   2 楼
痴狂的剑    8 年前

@alex.su 你好,我试了下,发现后台可以把ad里的账户同步过来,但是登陆不进去,在用户状态那里显示的好像是禁止的状态,这个要怎么解决呢?有遇到过吗?

alex.su
Reply   •   3 楼
alex.su    8 年前

1.2.7 的

痴狂的剑
Reply   •   4 楼
痴狂的剑    8 年前

@alex.su 我试试你这个,请问你的django-auth-ldap的版本是什么版本?

alex.su
Reply   •   5 楼
alex.su    8 年前

我这边是这样配置的哈,用户登录的时候会先用 LDAP 进行效验,效验通过,如果本地没有该账号则自动创建,如果本地有该账号,则同步指定的用户字段信息

如果LDAP 效验不通过,则检查是否有本地的账号,使用本地账号密码进行效验

1. 首先安装 django-auth-ldap 模块:

pip install django-auth-ldap

2. 在 setting.py 中加入下面的语句

import ldap from django_auth_ldap.config import LDAPSearch

AUTHENTICATION_BACKENDS = (

'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',

)

AUTH_LDAP_SERVER_URI = 'ldap://192.168.0.1:389'

AUTH_LDAP_BIND_DN = "CN=sumin,CN=Users,DC=test,DC=com" AUTH_LDAP_BIND_PASSWORD = "jiangling"

AUTH_LDAP_USER_SEARCH = LDAPSearch('CN=Users,DC=test,DC=com', ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)',)

AUTH_LDAP_USER_ATTR_MAP = { "first_name": "givenName", "last_name": "sn", "email": "mail" }

AUTH_LDAP_ALWAYS_UPDATE_USER = True

痴狂的剑
Reply   •   6 楼
痴狂的剑    8 年前

@liantian 认证后,会在django后台同时添加上同一个账户吗

liantian
Reply   •   7 楼
liantian    8 年前

https://github.com/liantian-cn/OMC/blob/master/src/apps/SSO/models.py

我是饶了一个思路,只使用ldap3模块,认证域用户后,使用登陆的还是一个本地用户,这样升级django会比较平滑。

痴狂的剑
Reply   •   8 楼
痴狂的剑    8 年前

自己顶一下