如何在Python中添加LDAP用户
发布时间:2023-12-17 17:04:38
LDAP(Lightweight Directory Access Protocol)是一种用于访问和维护分布式目录服务的协议。在Python中,可以使用python-ldap库来操作LDAP服务器。
要添加一个LDAP用户,需要以下步骤:
1. 导入ldap模块:
import ldap
2. 连接到LDAP服务器:
ldap_server = 'ldap://example.com' ldap_conn = ldap.initialize(ldap_server)
其中ldap_server是LDAP服务器的URL,例如ldap://example.com。
3. 绑定到LDAP服务器:
bind_dn = 'cn=admin,dc=example,dc=com' bind_password = 'password' ldap_conn.simple_bind_s(bind_dn, bind_password)
其中bind_dn是绑定用户的DN(Distinguished Name),bind_password是绑定用户的密码。
4. 构建用户的DN和属性:
base_dn = 'ou=users,dc=example,dc=com'
uid = 'john'
user_dn = f'uid={uid},{base_dn}'
attributes = {
'objectClass': ['inetOrgPerson', 'posixAccount'],
'cn': 'John Doe',
'sn': 'Doe',
'uid': uid,
'uidNumber': '1001',
'gidNumber': '1001',
'homeDirectory': f'/home/{uid}',
}
这里使用了inetOrgPerson和posixAccount两个objectClass,分别表示LDAP中的人员和UNIX账号。
5. 添加用户到LDAP服务器:
add_user = [(ldap.MOD_ADD, key, attributes[key]) for key in attributes] ldap_conn.modify_s(user_dn, add_user)
完整的添加LDAP用户的示例代码如下:
import ldap
ldap_server = 'ldap://example.com'
ldap_conn = ldap.initialize(ldap_server)
bind_dn = 'cn=admin,dc=example,dc=com'
bind_password = 'password'
ldap_conn.simple_bind_s(bind_dn, bind_password)
base_dn = 'ou=users,dc=example,dc=com'
uid = 'john'
user_dn = f'uid={uid},{base_dn}'
attributes = {
'objectClass': ['inetOrgPerson', 'posixAccount'],
'cn': 'John Doe',
'sn': 'Doe',
'uid': uid,
'uidNumber': '1001',
'gidNumber': '1001',
'homeDirectory': f'/home/{uid}',
}
add_user = [(ldap.MOD_ADD, key, attributes[key]) for key in attributes]
ldap_conn.modify_s(user_dn, add_user)
ldap_conn.unbind()
以上代码连接到LDAP服务器,绑定管理员用户,然后添加一个新用户到LDAP服务器中。
