学习Python 中LDAP的例子

512 阅读6分钟

LDAP是一个轻量级的目录访问协议。它是一个在TCP/IP上工作的互联网协议,它被用来访问/获取目录中的信息。所有的目录都是不可取的,它通常用于访问那些活跃的目录。

LDAP的特点/特征

众所周知,LDAP是一个功能模型;它简单而独特,因为它能够避免数据的重复,以保持内容的安全性和一致性。LDAP的一些主要特点如下;

  • 众所周知,LDAP是一个开源的实施协议,可以从互联网上免费下载。
  • 它有一个处理数据安全的重要特征。由于它支持传输层安全(TLS),敏感数据可以很容易地被保护起来,不被窃取。
  • LDAP在支持数据库系统方面也是有益的。因为它存储目录并允许用户根据服务器信息选择数据库。

关于它提供的服务,LDAP有很多功能。我们将在这里强调其中的一些。

对于客户端的认证

由于LDAP很容易访问,并且形成了许多连接/断开与LDAP服务器的操作,它导致了访问的权利,并保护了私人信息。它对通过连接请求的客户进行认证,以便只有真实有效的用户才能被连接。在认证过程中,通过使用功能创建和结束一个客户会话。如BIND/UNBIND,放弃。

对于信息的查询

它包括比较和搜索功能,用于从目录中获取信息。在这种情况下,服务器起着重要的作用,因为它通过遵循搜索、比较条目等功能执行许多动作。

数据的修改

数据的修改包括添加、删除和修改指定目录中的存储数据。主要功能包括:

1.增加一个条目。

2.删除数据的条目。

3.对数据进行修改。

这种修改是在两端进行的。例如,客户端通过在客户端使用主机名和端口号与服务器建立一个会话。为了安全起见,用户使用ID和密码进行认证。而在服务器端,服务器能够读取、更新和搜索数据。

客户端和服务器之间的LDAP交互

它类似于任何简单的客户机-服务器互动。在这种情况下,客户端对服务器使用协议功能。以下几点简要地解释了这种互动。

  1. 客户端向服务器发送一个协议请求。
  2. 服务器在目录上执行不同的操作,如搜索等。
  3. 服务器的响应被发回给客户端。

有几个软件可以很容易地创建一个连接并建立一个LDAP服务器。但它们都需要目录。如果用户不愿意在系统上安装目录服务器,但想使用LDAP,那么用户可以使用four11、bigfoot等。创建LDAP客户端很简单,因为有许多其他语言的SDK,如C++、Java等。要成为一个LDAP客户端,用户需要执行一些任务。

  • 对于你的编程语言,去获得一个SDK。
  • 使用SDK的功能来创建LDAP。
  • 在这些步骤之后,现在对LDAP进行操作。

创建LDAP用户

现在,我们将通过使用Python语言的脚本来创建一个LDAP用户。使用的是一个CSV文件。在创建之后,可以根据要求进一步修改脚本,比如添加一个创建单个用户的点击库。

第1步:安装需求

第一步是安装创建用户的先决条件。这涉及到 "python-ldap "的安装。

# Pip install python-ldap

第2步:使用Python形成与LDAP的连接

这一步是建立一个与LDAP的连接。首先,从 python 库中导入 ldap, sys, 和 LDAP_ADMIN_DN 模块。然后,我们将定义一个函数,将host和password作为一个函数的参数。

主函数被写在例外处理的'try'部分的主体内。这将消除任何大问题的发生,如果有任何细微的错误发生,就会抛出一个异常请求,由catch()方法解决。这一点在此不作描述。

回到代码中,连接是通过使用下面写的一行来建立的。

# Ldap_conn = ldap.initialize(ldap_host)

如果密码或主机名不正确,就会显示一个密码不正确的信息。否则,在凭证正确的情况下,会显示认证成功的消息。

第3步:CSV文件加载

导入CSV模块后,我们将采取一个空数组。为了打开已经创建的CSV文件,这里使用open()函数命令。该文件是通过使用一个对象打开的。该对象和两个文件都作为open函数()的参数传递。代码中的每一行都是通过阅读器函数逐行考虑的。

#vUsers_reader = csv.reader(users_csv_file)

所有的值都通过使用FOR循环输入到数组中。每个字都被放在数组的每个索引处。例如,第一个词是用户名;它被放在该数组的零索引处。一个类似的过程被用于所有的索引。这些词都存在于'user'变量中。现在,这些词通过append函数被追加到'users_to_import'数组中。

# users_to_import.append(user)

这就是现在加载CSV文件中的数据的方式。

第4步:在LDAP服务器上创建用户

从CSV文件中,我们将使用一个函数创建一个用户。第一步涉及到定义一个名为 "create_user "的函数。例如,我们的组的情况是:。

# Gid = find_gid(user[‘group’])

它接受用户名和管理员的密码。在函数体中,用户创建表单的每个字段都被填上了它得到的信息。这些信息被存储在变量中。这些变量在分配数组中的值时被使用。最后,我们使用append函数来绑定这些值。这里使用了一个if语句。这将通过len()检查'user'数组的长度。

# if (len(user['hosts'])):

# entry.append( ('host', user['hosts']) )

这里使用了相同的数组声明过程。数组的每个索引都包含了CSV文件中存在的内容的值。这一次,每个索引号也被赋予了我们在上面的函数中使用的变量名。

现在进入创建用户的最后阶段,在这里我们将通过分配数组中的每一个值,在用户创建时建立一个连接。再次使用一个尝试体来忽略错误。在最后,我们将使用unbind函数来关闭连接。

# ldap_conn.unbind_s()

总结

Python LDAP 示例 "旨在提供 LDAP 协议的特点、功能和用户创建功能。我们通过强调服务器和客户端之间的交互,简要地解释了这个协议的重要方面。我们希望这个教程能对用户在Python语言中实现LDAP有所帮助。