django添加ldap

mac2022-06-30  66

 1.前言

本文旨在介绍:在已完成django认证权限的基础上添加ldap。

2.回顾已完成的权限

网上有很多教程,这里不再细讲了。它包括两部分:

中间件实现

用到了django的2个表

django.contrib.auth.models 对应表:auth_userdjango.contrib.sessions.models 对应表:django_session

3. 添加第三方认证ldap

写在开始之前:当enable ldap,如果用ldap账号首次登录会在auth_user创建一条记录

3.1 安装依赖包

1. python-ldap(windows环境请用whl按照) 2. django-auth-ldap //如果出现python-ldap fatal error: lber.h: No such file or directory sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev sudo yum install python-devel openldap-devel

3.2 校验

在开始之前,先用python校验下拿到的ldap配置参数是否正常

import ldap conn = ldap.initialize("ldap:port") res = conn.simple_bind_s('cn=test,dc=com,dc=cn', "test") print(res) searchScope = ldap.SCOPE_SUBTREE searchFilter = 'cn=test1' base_dn = 'ou=Test,dc=com,dc=cn' print(conn.search_s(base_dn, searchScope, searchFilter, None))

3.3 配置到django setting

import ldap from django_auth_ldap.config import LDAPSearch # 找公司IT提供ldap配置 AUTH_LDAP_SERVER_URI = "" AUTH_LDAP_BIND_DN = "cn=test,dc=com,dc=cn" AUTH_LDAP_BIND_PASSWORD = "test" # 根据上面的改动 AUTH_LDAP_USER_SEARCH = LDAPSearch( 'ou=Test,dc=com,dc=cn', ldap.SCOPE_SUBTREE, '(uid=%(user)s)', ) # 请注意这部分 AUTH_LDAP_USER_ATTR_MAP = { 'username': 'cn', // 请对应login的username 'password': 'sn', // 请对应login的password } AUTHENTICATION_BACKENDS = ( 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend', ) 

3.4  修改django login

(很奇怪,发现很多教程都没写这块东东)

user = authenticate(username=username, password=password) if user: if user.is_active: if "ldap_username" in dir(user): //如果是自身的权限,请关注不同点 ***

 

转载于:https://www.cnblogs.com/flypig258/p/11309359.html

相关资源:垃圾分类数据集及代码
最新回复(0)