1. 程式人生 > 程式設計 >用ldap作為django後端使用者登入驗證的實現

用ldap作為django後端使用者登入驗證的實現

每個公司在運維平臺化過程中,如果以開始沒有規劃,免不了全面開花,會做成好多個平臺,然後每個平臺都有自己的認證體系,等平臺多了,記錄這些賬號就變得非常煩人,如果用不同的密碼,對人的記憶力是個挑戰,所以基於此,大部分公司會有部署Ldap系統,來統一運維繫統的賬號管理,像我們常用的jenkins也可以做對接到ldap上,這樣所有的系統就可以統一用ldap來認證,然後根據不同的人來設定不同的許可權,那django怎麼使用ldap來做後端驗證呢,操作接入非常簡單,整個過程可以幾乎不改我們之前的程式碼任何邏輯。

我們先進行第一步,安裝依賴,ldap和django-auth-ldap,django-auth-ldap這個安裝沒有任何問題, 我們不多說了,直接pip即可,但ldap這玩意兒在Linux系統上安裝沒啥問題,但如果你是windows系統,安裝準報錯,而且報的錯能讓你崩潰,你要是順著報錯的資訊去搜去解決問題,會浪費大量的時間,但你又不能不安裝,不然你本地怎麼除錯?(mac的忽略),不能每次改完程式碼提交到伺服器上驗證吧?不過大家別擔心,我已把路給大家趟平了,按以下步驟去安裝就絕對沒問題,首先訪問:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap

然後根據自己的版本需求下載對應的檔案,以下是我下載的:

用ldap作為django後端使用者登入驗證的實現

如果你用的虛擬環境,需要進入到你虛擬環境目錄然後進行安裝,進入windows虛擬環境下,執行: active.bat,進入虛擬環境:然後執行:

用ldap作為django後端使用者登入驗證的實現

等安裝完,就能正常使用了,下面我們來編輯settings.py檔案,加入內容:

首先匯入需要的模組:

import ldap
from django_auth_ldap.config import LDAPSearch,GroupOfNamesType

指定後端驗證為ldap:

AUTHENTICATION_BACKENDS = [
  'django_auth_ldap.backend.LDAPBackend','django.contrib.auth.backends.ModelBackend',]

然後設定ldap的ip地址連線配置:

# LDAP Setting
AUTH_LDAP_SERVER_URI = "ldap://10.1.1.1:389"
AUTH_LDAP_BIND_DN = "cn=admin,dc=xxx,dc=xx"
AUTH_LDAP_BIND_PASSWORD = "mypassword"
 
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'ou=users,dc=xx',ldap.SCOPE_SUBTREE,'(uid=%(user)s)',)
 
# 跟django中的auth_user對應
AUTH_LDAP_USER_ATTR_MAP = {
  "first_name": "uid","last_name": "sn","email": "mail"
}

完畢執行工程,這時候登入就是Ldap方式了,相對還是比較簡單

到此這篇關於用ldap作為django後端使用者登入驗證的實現的文章就介紹到這了,更多相關django 登入驗證內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!