python ldap新建用户
时间: 2023-06-30 09:20:31 浏览: 114
Python使用LDAP做用户认证的方法
要在 Python 中使用 LDAP 新建用户,需要使用到第三方库 `python-ldap`。以下是一个基本的代码示例:
```python
import ldap
# 连接 LDAP 服务器
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
l = ldap.initialize('ldap://your_ldap_server:389')
l.simple_bind_s('admin_dn', 'admin_password')
# 新建用户的 DN
new_user_dn = 'cn=new_user,ou=users,dc=example,dc=com'
# 用户属性
attrs = {}
attrs['objectclass'] = ['top', 'person', 'organizationalPerson', 'user']
attrs['cn'] = 'new_user'
attrs['givenName'] = 'New'
attrs['sn'] = 'User'
attrs['sAMAccountName'] = 'new_user'
attrs['userPrincipalName'] = 'new_user@example.com'
attrs['unicodePwd'] = '"Password1"'.encode('utf-16-le')
# 添加用户
l.add_s(new_user_dn, ldap.modlist.addModlist(attrs))
# 关闭连接
l.unbind()
```
在执行代码前需要安装 `python-ldap` 库。其中,`ldap.initialize` 方法用于连接 LDAP 服务器,`l.simple_bind_s` 方法用于绑定管理员账号,`l.add_s` 方法用于添加用户。在用户属性中,`objectclass` 表示用户的对象类别,`cn` 表示用户的全名,`givenName` 表示用户的名字,`sn` 表示用户的姓氏,`sAMAccountName` 表示用户的登录名,`userPrincipalName` 表示用户的 User Principal Name,`unicodePwd` 表示用户的密码,需要使用 utf-16-le 编码。添加用户后需要调用 `l.unbind` 方法关闭连接。
阅读全文