LDAP(Light Directory Access Portocol)是轻量目录访问协议,基于X.500标准,支持TCP/IP。
LDAP目录以树状的层次结构来存储数据。每个目录记录都有标识名(Distinguished Name,简称DN),用来读取单个记录,一般是这样的:
几个关键字的含义如下:
所以上面的dn代表一条记录,代表一位在test.com公司people部门的用户username。
python一般使用python-ldap库操作ldap,文档:https://www.python-ldap.org/en/latest/index.html。
下载:
获取LDAP地址后即可与LDAP建立连接:
绑定用户,可用于用户验证,用户名必须是dn:
成功认证时会返回一个tuple:
验证失败会报异常ldap.INVALID_CREDENTIALS:
注意验证时传空值验证也是可以通过的,注意要对dn和pwd进行检查。
查询LDAP用户信息时,需要登录管理员RootDN帐号:
添加用户add_s(dn, modlist),dn为要添加的条目dn,modlist为存储信息:
添加成功会返回元组:
失败会报ldap.LDAPError异常
一个很简单的LDAP验证Backend: