標籤:targe att imp import serve ror 網域名稱 優先 mail
archer是一個不錯的開源的SQL自動化操作平台,基於inception,支援工單、審核、定時任務、郵件、OSC等功能,還可配置MySQL查詢、慢查詢管理、會話管理等。
社區由作者(https://github.com/jly8866/archer/)開發,@小圈圈一直負責docker鏡像的更新,感謝兩位和社區。
下邊說一下怎麼配置LDAP。
配置LDAP主要在settings.py裡,範例代碼:
# LDAPENABLE_LDAP = Trueif ENABLE_LDAP: import ldap # from django_auth_ldap.config import LDAPSearch, GroupOfNamesType from django_auth_ldap.config import LDAPSearch, GroupOfUniqueNamesType AUTHENTICATION_BACKENDS = ( ‘django_auth_ldap.backend.LDAPBackend‘, # 配置為先使用LDAP認證,如通過認證則不再使用後面的認證方式 ‘django.contrib.auth.backends.ModelBackend‘, # sso系統中手動建立的使用者也可使用,優先順序靠後。注意這2行的順序 ) # if use self signed certificate, Remove AUTH_LDAP_GLOBAL_OPTIONS annotations # AUTH_LDAP_GLOBAL_OPTIONS={ # ldap.OPT_X_TLS_REQUIRE_CERT: ldap.OPT_X_TLS_NEVER # } AUTH_LDAP_BIND_DN = "cn=Manager,dc=example,dc=net" AUTH_LDAP_BIND_PASSWORD = "password" AUTH_LDAP_SERVER_URI = "ldap://ldap.example.net:389" AUTH_LDAP_BASEDN = "ou=技術中心,ou=People,dc=example,dc=net" AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,ou=技術中心,ou=People,dc=example,dc=net" AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=技術中心,ou=People,dc=example,dc=net", ldap.SCOPE_SUBTREE, "(objectClass=groupOfUniqueNames)" ) AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType() AUTH_LDAP_ALWAYS_UPDATE_USER = True # 每次登入從ldap同步處理的使用者資訊 AUTH_LDAP_USER_ATTR_MAP = { # key為archer.sql_users欄位名,value為ldap中欄位名,用於同步處理的使用者資訊 "username": "cn", "display": "displayName", "email": "mail" } # AUTH_LDAP_MIRROR_GROUPS = True # 直接把ldap的組複製到django一份,和AUTH_LDAP_FIND_GROUP_PERMS互斥.使用者每次登入會根據ldap來更新資料庫的組關係 AUTH_LDAP_FIND_GROUP_PERMS = True # django從ldap的組許可權中擷取許可權,這種方式,django自身不建立組,每次請求都調用ldap AUTH_LDAP_CACHE_GROUPS = True # 如開啟FIND_GROUP_PERMS後,此配置生效,對組關係進行緩衝,不用每次請求都調用ldap AUTH_LDAP_GROUP_CACHE_TIMEOUT = 600 # 緩衝時間
我要來的LDAP配置資訊如下
http://ldap.example.net/ldapadmin/
cn=Manager,dc=example,dc=net
password
ou=技術中心,ou=People,dc=example,dc=net
ou=Group,dc=example,dc
配置步驟
首先把ENABLE_LDAP改為True,意為開啟LDAP登入;
AUTH_LDAP_BIND_DN設定為cn=Manager,dc=haodai,dc=net,相當於archer串連LDAP的帳號,這裡給了管理員帳號
AUTH_LDAP_BIND_PASSWORD密碼
AUTH_LDAP_SERVER_URI是伺服器位址,有網域名稱寫網域名稱,沒網域名稱寫IP,記得後邊冒號跟連接埠
AUTH_LDAP_BASEDN是預設的路徑,全員都在裡邊的LDAP路徑
AUTH_LDAP_USER_DN_TEMPLATE是使用者帳號模板,設定為cn=%(user)s,後接AUTH_LDAP_BASEDN即可
AUTH_LDAP_GROUP_SEARCH組搜尋,設定為AUTH_LDAP_BASEDN即可
AUTH_LDAP_USER_ATTR_MAP裡的三個值是archer映射ldap資料的欄位,我這個版本的ldap是上邊的,具體的可以登入ldap admin查看自己的屬性欄位
最下邊的四個選項預設即可
配置好以後重啟gunicorn,然後嘗試使用LDAP帳號登入,看日誌報什麼錯,根據提示調試好即可。
archer配置LDAP