欢迎访问宙启技术站
智能推送

如何在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}',
}

这里使用了inetOrgPersonposixAccount两个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服务器中。