2019-04-04 13:36:27 1326浏览
今天扣丁学堂Python培训老师给大家分享一篇关于Django集成OpenLDAP认证的实现,并详细介绍了django-auth-ldap的使用方法,下面我们一起来看一下吧。
pip install django-auth-ldap
import ldap from django_auth_ldap.config import LDAPSearch, GroupOfNamesType # Baseline configuration. AUTH_LDAP_SERVER_URI = 'ldap://ldap.ops-coffee.cn' AUTH_LDAP_BIND_DN = 'uid=authz,ou=Public,dc=ops-coffee,dc=cn' AUTH_LDAP_BIND_PASSWORD = 'CzfdX629K7' AUTH_LDAP_USER_SEARCH = LDAPSearch( 'ou=People,dc=ops-coffee,dc=cn', ldap.SCOPE_SUBTREE, '(uid=%(user)s)', ) # Or: # AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,ou=People,dc=ops-coffee,dc=cn' AUTH_LDAP_USER_ATTR_MAP = { 'first_name': 'cn', 'last_name': 'sn', 'email': 'mail', } AUTHENTICATION_BACKENDS = ( 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend', )
from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion AUTH_LDAP_USER_SEARCH = LDAPSearchUnion( LDAPSearch( 'ou=Public,dc=ops-coffee,dc=cn', ldap.SCOPE_SUBTREE, '(uid=%(user)s)' ), LDAPSearch( 'ou=PeoPle,dc=ops-coffee,dc=cn', ldap.SCOPE_SUBTREE, '(uid=%(user)s)' ), )
# ldapsearch -LLL -x -D "uid=authz,ou=Public,dc=ops-coffee,dc=cn" -w "CzfdX629K7" -b cn=overmind,ou=Group,dc=ops-coffee,dc=cn dn: cn=overmind,ou=Group,dc=ops-coffee,dc=cn cn: overmind member: uid=sre,ou=People,dc=ops-coffee,dc=cn objectClass: groupOfNames objectClass: top # ldapsearch -LLL -x -D "uid=authz,ou=Public,dc=ops-coffee,dc=cn" -w "CzfdX629K7" -b cn=kerrigan,ou=Group,dc=ops-coffee,dc=cn dn: cn=kerrigan,ou=Group,dc=ops-coffee,dc=cn cn: kerrigan objectClass: groupOfNames objectClass: top member: uid=u1,ou=Public,dc=ops-coffee,dc=cn member: uid=u2,ou=People,dc=ops-coffee,dc=cn # ldapsearch -LLL -x -D "uid=authz,ou=Public,dc=ops-coffee,dc=cn" -w "CzfdX629K7" -b cn=admin,ou=Group,dc=ops-coffee,dc=cn dn: cn=admin,ou=Group,dc=ops-coffee,dc=cn cn: admin member: uid=u3,ou=Admin,dc=ops-coffee,dc=cn objectClass: groupOfNames objectClass: top
AUTH_LDAP_GROUP_SEARCH = LDAPSearch( 'ou=Group,dc=ops-coffee,dc=cn', ldap.SCOPE_SUBTREE, '(objectClass=groupOfNames)', ) AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr='cn') # Simple group restrictions # AUTH_LDAP_REQUIRE_GROUP = 'cn=overmind,ou=Group,dc=ops-coffee,dc=cn' AUTH_LDAP_DENY_GROUP = 'cn=kerrigan,ou=Group,dc=ops-coffee,dc=cn' AUTH_LDAP_USER_FLAGS_BY_GROUP = { 'is_superuser': 'cn=admin,ou=Group,dc=ops-coffee,dc=cn', }
AUTH_LDAP_REQUIRE_GROUP = 'cn=overmind,ou=Group,dc=ops-coffee,dc=cn'
AUTH_LDAP_DENY_GROUP = 'cn=kerrigan,ou=Group,dc=ops-coffee,dc=cn'
AUTH_LDAP_USER_FLAGS_BY_GROUP AUTH_LDAP_USER_FLAGS_BY_GROUP = { 'is_superuser': 'cn=admin,ou=Group,dc=ops-coffee,dc=cn', }
c:\users\ops-coffee\appdata\local\temp\pip-install-sec1o036\python-ldap\modules\constants.h(7): fatal error C1083: Cannot open include file: 'lber.h': No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
D:\demo\openldap>python -m pip install python_ldap-3.2.0-cp36-cp36m-win_amd64.whl Processing d:\demo\openldap\python_ldap-3.2.0-cp36-cp36m-win_amd64.whl Requirement already satisfied: pyasn1>=0.3.7 in c:\python36\lib\site-packages (from python-ldap==3.2.0) (0.4.2) Requirement already satisfied: pyasn1-modules>=0.1.5 in c:\python36\lib\site-packages (from python-ldap==3.2.0) (0.2.4) Installing collected packages: python-ldap Successfully installed python-ldap-3.2.0
【关注微信公众号获取更多学习资料】 【扫码进入Python全栈开发免费公开课】