ldif 数据转成正确的组织结构再探

简介: ldif 数据转成正确的组织结构再探

上次文章最后有说到按照之前的思路来转化组织结构是有坑的,我们现在还只是对接 AD域,ldap 协议的其他产品在细节上还会有些许不同

我们是不能直接粗暴的认为 cn 就是对应标识一个用户, cn 是 common name 的意思,他也可以表示我们理解的用户组

orgnizationalUnitcontainer 也可以是组的意思,但是对于 AD 域来说,在他们上面能够配置的属性有差别

那么对于同步组织结构,我们实际上是可以如何做的呢?不能粗暴的按照之前的方式来实现,我们可以如何实现?

先过滤组织

我们可以在 ldap 服务器中可以看到, cn 也可以是组的意思,cn 下面也可以是 ou

因此单单的通过 dn 是无法分辨出哪个 dn 代表的是组,哪个 dn 代表的是用户的

因此在 ldap 中,我们想要获取我们认为的组织结构,那么就需要有一定的方法

  • 先过滤组
  • 再过滤用户
  • 拼装整个组织结构

过滤组织

我们就可以使用例如这样的过滤条件:(|(objectClass=organizationalUnit)(objectClass=organizationalRole))

筛选出来的 dn 全部都是我们认为的组,根据之前的逻辑将这个组生成一棵树即可,是一棵多叉树

例如效果可能是这样的,先生成一棵树,树的基本雏形就有了

再过滤用户

过滤用户的时候 可以是这样的

(|(objectClass=Person)(objectClass=user))

当然,这些过滤用户都是可以自己修改的,只是我们的逻辑是,先过滤组,再过滤用户

我们过滤的用户可能有这些

我们这里要注意,这些用户不是所有都要挂到我们的树上面的,需要检验他们是不是我们期望的组

拼装整个组织结构

拼装之后,结果可能是这样的,新增的节点是对应的用户,蓝色的是我们正确加入组织结构里面的用户

橙色的也是我们通过上述 条件 (|(objectClass=Person)(objectClass=user)) 筛选出来的用户,但是不属于我们之前筛选的组里面的成员

因此,不能把 J 和 K 加入到我们的组织结构中

则最终我们的组织结构是这样的才对

对于编码的实现原理,和上一篇的类似,只是在生成树的时候需要调整一下即可,处理 DN 的时候,处理组的 DN 和 处理 用户的 DN 需要分开过滤,分开处理,最后做拼装

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关文章
|
11月前
|
数据安全/隐私保护
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
144 4
|
4月前
|
运维 监控 安全
软件研发核心问题之用在需求拆解时明确监控范围与形式的问题如何解决
软件研发核心问题之用在需求拆解时明确监控范围与形式的问题如何解决
|
3月前
|
存储 机器学习/深度学习 C++
2.10 动静转换
这篇文章介绍了飞桨框架的动静转换功能,允许开发者使用动态图的易用性编写代码,并通过添加装饰器 @paddle.jit.to_static 转换为静态图模式运行,以提高模型训练和部署的效率和性能。
|
11月前
|
存储 小程序 网络协议
C生万物 | 深度挖掘数据在计算机内部的存储-1
C生万物 | 深度挖掘数据在计算机内部的存储
60 0
|
11月前
|
存储 编译器 程序员
C生万物 | 深度挖掘数据在计算机内部的存储-3
C生万物 | 深度挖掘数据在计算机内部的存储
47 0
24张图,九大数据结构安排得明明白白
数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。
|
容器 Cloud Native
ldif 数据转成正确的组织结构再探
上次文章最后有说到按照之前的思路来转化组织结构是有坑的,我们现在还只是对接 AD域,ldap 协议的其他产品在细节上还会有些许不同
|
供应链 算法 数据挖掘
存管理信息系统设计与开发(下)
存管理信息系统设计与开发(下)
153 0
|
存储 编解码 供应链
存管理信息系统设计与开发(上)
存管理信息系统设计与开发(上)
526 0
《重构2》第九章-重组数据
《重构2》第九章-重组数据
101 0