因为不同公司使用LDAP的方式可能不同,我在做这个功能的时候,并没有做更多的兼容
这里只是按照我使用的方式来接入LDAP,如果不一样,其实可以简单的修改代码逻辑
详情内容请查看如下文档:
我操作LDAP的一些相关记录
requirements.txt
utils/ldap_cli.py
account/models.py
account/controllers/ldap.py
account/apis/ldap.py
account/urls/ldap.py
account/urls/__init__.py
account/controllers/sync.py
scheduler/tasks/berry.py
account/controllers/user.py
data/sql/rurality.sql
requirements.txt:
安装ldap依赖,这里我就使用的是ldap3,就是在github上看看谁的星多,谁多用谁
utils/ldap_cli.py:
操作LDAP工具类
account/models.py:
定义LDAP配置model
host: 记录ldap的服务地址,例如: ldap://ldap.oldb.top:389
admin_dn: 记录管理员账号的DN值,例如:cn=admin,dc=oldb,dc=top
admin_password: 记录管理员密码
member_base_dn: 记录用户存储的父节点DN,所有用户均在此节点下,例如:cn=member,dc=oldb,dc=top
account/controllers/ldap.py
account/apis/ldap.py
account/urls/ldap.py
account/urls/__init__.py
LDAP配置相关接口及方法
account/controllers/sync.py
scheduler/tasks/berry.py
同步LDAP用户任务
account/controllers/user.py:
修正登录逻辑,接入LDAP认证
data/sql/rurality.sql:
导入最新的sql
src/api/component/ldap/index.js
src/api/component/ldap/url.js
src/views/system/ldap/index.vue
src/views/system/ldap/components/ObjDialog/index.vue
src/router/modules/system.js
src/views/login/index.vue
src/views/system/user/index.vue
src/api/component/ldap/index.js
src/api/component/ldap/url.js
LDAP相关接口
src/views/system/ldap/index.vue
src/views/system/ldap/components/ObjDialog/index.vue
src/router/modules/system.js
LDAP配置管理界面
src/views/login/index.vue:
登录界面增加LDAP标识
src/views/system/user/index.vue:
用户界面增加同步按钮