django使用ldap认证
pip3 install django-auth-ldap python-ldap
urls.py,
from app0104 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^loginauth/', views.loginauth),
url(r'^index/', views.index),
]
index.html,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>fuck,{{ usergo }}</h1>
</body>
</html>
loginauth.html,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form class="formone" action="/loginauth/" method="post">
<input type="text" name="name" />
<input type="password" name="password" />
<input type="submit" value="ss" />
</form> {{ context.errors_list }}
{{ context.user_loggedin }} </body>
</html>
views.py,
from django.shortcuts import render,HttpResponseRedirect # Create your views here. from django.contrib.auth import authenticate, login as auth_login, logout as auth_logout
from django.contrib.auth.models import User name = '' def loginauth(request): user_loggedin = 'Guest'
errors_list = []
if request.method == 'POST':
print('pp: ', request.POST.get('name'), request.POST.get('password'))
global name
name = request.POST.get('name')
password = request.POST.get('password')
usergo = authenticate(username=name, password=password) print('authuser', usergo)
if usergo is not None:
auth_login(request, usergo)
uu = request.user
loginusername = usergo
u = User.objects.get(username=uu)
return HttpResponseRedirect("/index/") context = {'errors_list': errors_list, 'user_loggedin': user_loggedin}
return render(request, 'loginauth.html', context) def index(request):
print('last:',name)
return render(request,'index.html',{'usergo':name})
settings.py,
import os import ldap
#LDAP configurationimport ldap
from django_auth_ldap.config import LDAPSearch
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
# base_dn = 'dc=example,dc=com'
# AUTH_LDAP_SERVER_URI = 'ldap://192.168.187.55:389'
# AUTH_LDAP_BIND_DN = 'cn=admin,dc=example,dc=com'
# AUTH_LDAP_BIND_PASSWORD = "123456"
#
# # 用户的DN是uid=caojun,ou=People,dc=ldap,dc=ssotest,dc=net,所以用uid
# AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=People,dc=example,dc=com', ldap.SCOPE_SUBTREE, "(uid=%(user)s)") basedn = "OU=fds,DC=ddd,DC=com"
AUTH_LDAP_SERVER_URI = 'ldap://192.112.250.140:31338'
AUTH_LDAP_BIND_DN = 'CN=Admin.BJSHOP,OU=dfd_Admin,OU=AdminAccounts,OU=Applications,DC=sf,DC=com'
AUTH_LDAP_BIND_PASSWORD = "dddw33rewq" # 用户的DN是uid=caojun,ou=People,dc=ldap,dc=ssotest,dc=net,所以用uid
AUTH_LDAP_USER_SEARCH = LDAPSearch('OU=ddd,DC=dd,DC=com', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)") AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
django使用ldap认证的更多相关文章
- Django集成OpenLDAP认证
本文详细介绍了django-auth-ldap的使用方法,参数含义,并提供了示例代码 版本说明 Django==2.2 django-auth-ldap==1.7.0 集成过程 Django集成LDA ...
- 07: Django 使用ldap登录、注销等
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- django使用LDAP验证
1.安装Python-LDAP(python_ldap-2.4.25-cp27-none-win_amd64.whl)pip install python_ldap-2.4.25-cp27-none- ...
- Django自定义用户认证系统之自定义用户模型
参考文档:http://python.usyiyi.cn/django/topics/auth/customizing.html Django 自带的认证系统足够应付大多数情况,但你或许不打算使用现成 ...
- 将Python的Django框架与认证系统整合的方法
将Python的Django框架与认证系统整合的方法 这篇文章主要介绍了将Python的Django框架与认证系统整合的方法,包括指定认证后台和编写认证后台等内容,需要的朋友可以参考下 将Django ...
- No.2 CAS之SPNEGO+LDAP认证配置
1.概述 本文先配置了SPNEGO认证,就是如果用户操作系统如果登陆了公司的Windows域,用户浏览器访问应用服务即可免登录. 然后如果不在域里的员工,用LDAP认证方式,输账号密码登陆. 参考文档 ...
- Jenkins-配置LDAP认证
Jenkins-配置LDAP认证 参考文档: LDAP添加用户详见我的博文 Linux分类 中的< LDAP2-创建OU和用户>博文. 1.LDAP配置 1.准备一个adminDN账号用 ...
- Django组件之认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Dja ...
- Django Rest Framework(认证、权限、限制访问频率)
阅读原文Django Rest Framework(认证.权限.限制访问频率) django_rest_framework doc django_redis cache doc
随机推荐
- caffe中关于数据进行预处理的方式
caffe的数据层layer中再载入数据时,会先要对数据进行预处理.一般处理的方式有两种: 1. 使用均值处理 transform_param { mirror: true crop_size: me ...
- 从下往上看--新皮层资料的读后感 第二部分:突触Synapses
为进一步了解这种连接性产生的差异,在认识soma这个独立的逻辑单元后,进化过程设计了一整套系统设计来使用这个逻辑单元.为促成细胞体之间发生连接构成系统dendrite和axon之间的连接需要引入新的功 ...
- JavaScript判断IE版本
判断IE兼容到IE11 IE浏览器与非IE浏览器的区别是IE浏览器支持ActiveXObject,但是非IE浏览器不支持ActiveXObject.在IE11浏览器还没出现的时候我们判断IE和非IE经 ...
- 原生js通过prottype写的一个简单拖拽
<!DOCTYPE html> <head> <meta charset="utf-8"/> <title></title&g ...
- 制作简单的2D物理引擎(零)
最近发现了Github上的开源物理引擎项目Matter.js,对它很感兴趣,发现源码并不算长,算上注释大约1万行左右,值得剖析一番.Matter.js实现一个最小化的2D物理引擎,性能不错,故打算用C ...
- linux环境下android-ndk下的ffmpeg编译
目前正在做手机底层播放器对的开发,需要用的ffmpeg,因为是新手,所以先从ffmpeg的编译开始做起.虽然是在前人的基础上,但是在linux上编译确实头一遭,因此在编译中,总有些坑是必须要填的,下面 ...
- JAVA 多线程随笔 (一) 可见性和volatile关键字
// 先上代码 1 public class NoVisibility { private static boolean ready; private static int number; priva ...
- 锤子手机 Smartisan M1L 咖啡金 真皮背面 高配版 5.7
http://www.smartisan.com/m1/#/os 快人一步的OS http://www.smartisan.com/shop/#/buyphone?c=coffee&v= ...
- Firebug的下载安装
网上下载到的Firebug最后得到的都是一个.xpi文件 这个文件直接从文件夹拖入火狐浏览器就可以完成安装了,但浏览器总会告诉你无法通过验证.... 这时候你只需要在火狐浏览器中输入about:con ...
- 一个简单的金额平均分配函数(C#版)
//总金额平均分配给总人数 //参数说明:总金额,总人数,最大金额为平均金额的倍率 public double[] GetList(double zje,int zrs,int max) { doub ...