国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

django使用LDAP驗(yàn)證的方法示例

2020-02-16 00:02:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.安裝Python-LDAP(python_ldap-2.4.25-cp27-none-win_amd64.whl)pip install python_ldap-2.4.25-cp27-none-win_amd64.whl

2.安裝django-auth-ldap(django-auth-ldap-1.2.8.tar.gz)(下載:https://pypi.python.org/pypi/django-auth-ldap),Windows下也可以使用 python setup.py install

安裝成功后運(yùn)行命令,運(yùn)行成功表示安裝成功

from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion, GroupOfNamesType 

3.配置settings.py,增加如下:

參考:https://pypi.python.org/pypi/django-auth-ldap/1.2.1說(shuō)明文檔

# -*- coding: UTF-8 -*-import ldapfrom django_auth_ldap.config import LDAPSearch #導(dǎo)入LDAP modelAUTHENTICATION_BACKENDS = (   'django_auth_ldap.backend.LDAPBackend', #配置為先使用LDAP認(rèn)證,如通過(guò)認(rèn)證則不再使用后面的認(rèn)證方式  'django.contrib.auth.backends.ModelBackend', ) AUTH_LDAP_SERVER_URI = 'ldap://192.168.200.20:389'AUTH_LDAP_BIND_DN = 'CN=test01,OU=ServerAdmin,DC=uu,DC=yyy,DC=com'AUTH_LDAP_BIND_PASSWORD = '123456' OU = unicode('OU=中文名,DC=uu,DC=yyy,DC=com', 'utf8') #限制哪個(gè)OU中的用戶(hù)可以進(jìn)行AD認(rèn)證。如果OU中包含有中文字符,則需要這樣寫(xiě),否則會(huì)出現(xiàn)ascii無(wú)法識(shí)別的報(bào)錯(cuò)(UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position)# OU0 = 'OU=ServerAdmin,DC=uxin,DC=youxinpai,DC=com'# OU = unicode('OU=優(yōu),DC=uxin,DC=youxinpai,DC=com', 'utf8')# OU1 = u'OU=優(yōu),DC=uxin,DC=youxinpai,DC=com'# OU2 = u'OU=/u4f18,DC=uxin,DC=youxinpai,DC=com'# OU == OU1 == OU2 #返回True#檢索單個(gè)OUAUTH_LDAP_USER_SEARCH = LDAPSearch(OU, ldap.SCOPE_SUBTREE, "(&(objectClass=person)(sAMAccountName=%(user)s))")# 檢索多個(gè)OU:# AUTH_LDAP_USER_SEARCH = LDAPSearchUnion( #   LDAPSearch("ou=user,ou=ou1,ou=ou,dc=cn,dc=com",ldap.SCOPE_SUBTREE, "(&(objectClass=user)(sAMAccountName=%(user)s))"), #   LDAPSearch("ou=user,ou=ou2,ou=ou,dc=cn,dc=com",ldap.SCOPE_SUBTREE, "(&(objectClass=user)(sAMAccountName=%(user)s))"), # ) #將賬號(hào)的姓、名、郵件地址保存到django的auth_user表中,在admin后臺(tái)可以看到AUTH_LDAP_USER_ATTR_MAP = {   "first_name": "givenName",  "last_name": "sn",  "email": "mail"} 

同步用戶(hù)組信息:

當(dāng)用戶(hù)登錄后,如果用戶(hù)屬于某個(gè)組,則會(huì)將該組同步到auth_group表中,之后在admin后臺(tái)可以對(duì)該組進(jìn)行權(quán)限設(shè)置,之后同屬于該組的用戶(hù)在登錄后則具有相應(yīng)的權(quán)限。

當(dāng)一個(gè)用戶(hù)不再屬于某個(gè)組,該組也不會(huì)被自動(dòng)刪掉,在admin后臺(tái)手工刪掉即可。

from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion, GroupOfNamesType AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn") #返回的組的類(lèi)型,并用來(lái)判斷用戶(hù)與組的從屬關(guān)系OUg = unicode('OU=安全組,DC=uu,DC=yyy,DC=com', 'utf8')AUTH_LDAP_GROUP_SEARCH = LDAPSearch(OUg,ldap.SCOPE_SUBTREE, "(objectClass=group)" ) #搜索某個(gè)OU下組信息 AUTH_LDAP_MIRROR_GROUPS = True #導(dǎo)入用戶(hù)的組信息,在用戶(hù)登錄的時(shí)候把用戶(hù)的域組關(guān)系同步過(guò)來(lái)。每次用戶(hù)登錄時(shí),都會(huì)把用戶(hù)的組關(guān)系刪除,重新從ldap中進(jìn)行同步(解決辦法參考后面)AUTH_LDAP_ALWAYS_UPDATE_USER = True #是否同步LDAP修改            
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡东县| 乐清市| 沅江市| 高青县| 黄平县| 邮箱| 琼中| 新干县| 红桥区| 凯里市| 石楼县| 中方县| 门源| 周宁县| 邻水| 保定市| 陇西县| 娄烦县| 江阴市| 泰州市| 井研县| 吉安县| 怀远县| 呼玛县| 阿鲁科尔沁旗| 大同县| 南丰县| 吉林省| 惠安县| 霍林郭勒市| 清流县| 贡觉县| 衡山县| 合川市| 杭锦后旗| 马山县| 无为县| 西城区| 防城港市| 蒙山县| 东兴市|