python3 ldap认证

摘要:
python3ldap认证#!

python3 ldap认证

#! /usr/bin/python
# -*- coding:utf-8 -*-
# Author: panb

import logging
from ldap3 import Server, Connection, ALL

logger = logging.getLogger("oauth")

LDAP = {
    "server": "172.27.27.220",
    "port": 389,
    "use_ssl": False,
    "domain": "jcici.com",
    "base": "ou=People,dc=jcici,dc=com"
}


class LdapAdmin(object):
    def __init__(self):
        """
        init
        """
        self.host = LDAP['server']
        self.port = LDAP.get('port', 389)
        self.use_ssl = LDAP.get('use_ssl', False)
        self.domain = LDAP['domain']
        self.base = LDAP['base']
        self.search_filter = "uid={uid}"

    def login(self, username, password):
        """
        登录
        :return:
        """
        server = Server(host=self.host,
                        port=self.port,
                        use_ssl=self.use_ssl,
                        connect_timeout=15,
                        get_info=ALL)

        try:
            conn = Connection(server,
                              user=f"uid={username},{self.base}",
                              password=password,
                              check_names=True,
                              lazy=False,
                              auto_bind=True,
                              receive_timeout=30
                              )

        except Exception as e:
            err_msg = f'LDAP 认证失败:{e}'
            logger.error(err_msg)
            return False
        else:
            msg = conn.result
            print(msg)
            conn.unbind()
            return True

        # print(server.info)
        # print(server.schema)
        # _username = (conn.extend.standard.who_am_i())
        # print(_username)


ldap_ins = LdapAdmin()
resp = ldap_ins.login("panbiao", "123456")
print(resp)

免责声明:文章转载自《python3 ldap认证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【quartz】 各数据库创建脚本kali 系统 wifi密码破解笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux Python3 的一些坑

在使用 python3 过度的过程中总是会出现很多问题,这里慢慢收集记录,如有错误欢迎指正。 安装问题 Lunix 系统一般默认都是 python2.7.5 升级到 Python3.x 版本一般都需要通过编译安装。这里主要记录下编译安装需要依赖的包,我们需要先安装。 yum groupinstall 'Development Tools' yum i...

python3 + Django + Mysql + Vue + Element-UI 学习笔记:从0搭建前后端分离的测试工具平台

2020.03.23  INIT 中间换了工作,好久没写了 2021.05.08  新增:页面预览、功能实现样例(含后端接口、前端页面、配置绑定) 2021.05.13  新增:首页增加访问人数统计功能 2021.05.19  新增:用户信息查询接口、页面开发 2021.06.10  新增:生成图片功能 2021.06.18  新增:文本处理工具下载页面...

Python3网络学习案例一:Ping详解

1. 使用Ping做什么ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。 2. 效果CMD命令: Python程序: 3. 在验证两台主机是否能正常联通时做了什么验证的过程就像打电话一样,我们如果要知道自己能否给另一个人交流就给他打一个电...

Dirsearch 快速开始

Dirsearch 一个 web 路径扫描工具 本文版本:v0.4.1(2020.12.8) 安装 下载源代码: git clone https://github.com/maurosoria/dirsearch.git 安装需求的 python 库: cd dirsearch pip3 install -r requirements.txt 或者使用...

python3 练习题100例 (二十七)列表元素改写

题目内容: 输入一个列表alist,要求列表中的每个元素都为正整数且不超过10; 将列表中的奇数变为它的平方,偶数除以2后打印新的列表(新的列表中所有元素仍都为整数)。 可以使用以下实现列表alist的输入: alist=list(map(int,input().split())) 同时为保证输出结果一致,请将集合内元素排序之后再输出。 如对于列表ali...

kickstart详解

ks详解 一、文件组成 文件由三部分组成 1、选项指令段 用于自动应答图形/文本界面安装时除了包以外的所有操作 2、package选择段 使用%packages引导该功能 3、脚本段 脚本段分为两部分 1)%pre 预安装脚本段,在安装系统之前就执行的脚本,该段很少使用,命令太少了 2)%post 后安装脚本段,在系统安装完成后执行的较薄 二、ks必须选项...