「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战」。
前言
上一篇文章写了openldap快速入门,这篇来写写相关api的调用
ldap基于go客户端包传送门: github.com/go-ldap/lda…
该包的功能如下:
- 支持连接ldap服务器(加密,不加密等)
- 支持admin和普通用户认证
- 支持增删改查用户
- 支持搜索、过滤以及条件查找
安装
先使用go将包下载到本地,因我们使用的openldap目前是v3版本
1 | js复制代码go get github.com/go-ldap/ldap/v3 |
在代码编辑器里面引入既可使用
1 | js复制代码import "github.com/go-ldap/ldap" |
使用
连接,管理员认证
调用api的dial来创建一个新实例,后续直接调用
1 | js复制代码l, err := ldap.Dial("tcp", "IP:389") |
创建用户
这部分第一步先创建用户,接着设置密码,可以用常规的方式设置固定的密码,也可以使用随机生成,这里演示一下随机生成
1 | js复制代码//创建新用户 |
普通用户认证
普通用户只有认证权限,没有查询权限
1 | js复制代码l, err := ldap.Dial("tcp", "IP:389") |
修改用户信息
修改一些用户的描述之类的,用处不大
1 | js复制代码modify := ldap.NewModifyRequest("uid=node1,ou=node1,dc=libaigo,dc=com",nil) |
修改用户密码
这个修改密码的函数支持不输入旧密码
1 | js复制代码passwordModifyRequest := ldap.NewPasswordModifyRequest("uid=go,ou=go,dc=libaigo,dc=com", "", "123456") |
搜索全部用户
如果没有设置过滤条件,会查找出所有用户
1 | js复制代码searchRequest := ldap.NewSearchRequest("dc=libaigo,dc=com", |
搜索指定用户
1 | js复制代码username := "node1" |
删除用户
构造一个用户传入到Del函数中既可
1 | js复制代码err= l.Del(&ldap.DelRequest{ |
本文转载自: 掘金