每個(gè)公司在運(yùn)維平臺(tái)化過(guò)程中,如果以開(kāi)始沒(méi)有規(guī)劃,免不了全面開(kāi)花,會(huì)做成好多個(gè)平臺(tái),然后每個(gè)平臺(tái)都有自己的認(rèn)證體系,等平臺(tái)多了,記錄這些賬號(hào)就變得非常煩人,如果用不同的密碼,對(duì)人的記憶力是個(gè)挑戰(zhàn),所以基于此,大部分公司會(huì)有部署Ldap系統(tǒng),來(lái)統(tǒng)一運(yùn)維系統(tǒng)的賬號(hào)管理,像我們常用的jenkins也可以做對(duì)接到ldap上,這樣所有的系統(tǒng)就可以統(tǒng)一用ldap來(lái)認(rèn)證,然后根據(jù)不同的人來(lái)設(shè)置不同的權(quán)限,那django怎么使用ldap來(lái)做后端驗(yàn)證呢,操作接入非常簡(jiǎn)單,整個(gè)過(guò)程可以幾乎不改我們之前的代碼任何邏輯。
我們先進(jìn)行第一步,安裝依賴,ldap和django-auth-ldap,django-auth-ldap這個(gè)安裝沒(méi)有任何問(wèn)題, 我們不多說(shuō)了,直接pip即可,但ldap這玩意兒在Linux系統(tǒng)上安裝沒(méi)啥問(wèn)題,但如果你是windows系統(tǒng),安裝準(zhǔn)報(bào)錯(cuò),而且報(bào)的錯(cuò)能讓你崩潰,你要是順著報(bào)錯(cuò)的信息去搜去解決問(wèn)題,會(huì)浪費(fèi)大量的時(shí)間,但你又不能不安裝,不然你本地怎么調(diào)試?(mac的忽略),不能每次改完代碼提交到服務(wù)器上驗(yàn)證吧?不過(guò)大家別擔(dān)心,我已把路給大家趟平了,按以下步驟去安裝就絕對(duì)沒(méi)問(wèn)題,首先訪問(wèn):
https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap
然后根據(jù)自己的版本需求下載對(duì)應(yīng)的文件,以下是我下載的:
如果你用的虛擬環(huán)境,需要進(jìn)入到你虛擬環(huán)境目錄然后進(jìn)行安裝,進(jìn)入windows虛擬環(huán)境下,執(zhí)行: active.bat,進(jìn)入虛擬環(huán)境:然后運(yùn)行:
等安裝完,就能正常使用了,下面我們來(lái)編輯settings.py文件,加入內(nèi)容:
首先導(dǎo)入需要的模塊:
1
2
|
import ldap from django_auth_ldap.config import LDAPSearch,GroupOfNamesType |
指定后端驗(yàn)證為ldap:
1
2
3
4
|
AUTHENTICATION_BACKENDS = [ 'django_auth_ldap.backend.LDAPBackend' , 'django.contrib.auth.backends.ModelBackend' , ] |
然后設(shè)置ldap的ip地址連接配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# LDAP Setting AUTH_LDAP_SERVER_URI = "ldap://10.1.1.1:389" AUTH_LDAP_BIND_DN = "cn=admin,dc=xxx,dc=xxx,dc=xx" AUTH_LDAP_BIND_PASSWORD = "mypassword" AUTH_LDAP_USER_SEARCH = LDAPSearch( 'ou=users,dc=xxx,dc=xxx,dc=xx' , ldap.SCOPE_SUBTREE, '(uid=%(user)s)' , ) # 跟django中的auth_user對(duì)應(yīng) AUTH_LDAP_USER_ATTR_MAP = { "first_name" : "uid" , "last_name" : "sn" , "email" : "mail" } |
完畢運(yùn)行工程,這時(shí)候登錄就是Ldap方式了,相對(duì)還是比較簡(jiǎn)單
到此這篇關(guān)于用ldap作為django后端用戶登錄驗(yàn)證的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)django 登錄驗(yàn)證內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.mindg.cn/?p=2826