2019-04-04 13:36:27 1362浏览
今天扣丁学堂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全栈开发免费公开课】