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

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

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

image.png

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

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

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

先过滤组织

image.png

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

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

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

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

过滤组织

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

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

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

image.png

再过滤用户

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

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

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

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

image.png

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

拼装整个组织结构

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

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

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

image.png

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

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


欢迎点赞,关注,收藏

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

image.png

好了,本次就到这里

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

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

相关文章
|
7月前
|
Cloud Native 容器
ldif 数据转成正确的组织结构再探
ldif 数据转成正确的组织结构再探
|
6月前
|
数据安全/隐私保护
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
如何把DDD应用到实际项目中来,例子中需要包含具体的领域模型设计,这么做的理由,以及一位这个设计而引进的坑
|
1月前
|
人工智能 自然语言处理 算法
数字永生源码独立部署怎么做?
数字人源码,数字人永生,数字人源码独立部署,数字人
数字永生源码独立部署怎么做?
|
1月前
|
存储 JavaScript 前端开发
无序中的秩序之美:集合数据为编程世界增添新的维度
无序中的秩序之美:集合数据为编程世界增添新的维度
|
供应链 算法 数据挖掘
存管理信息系统设计与开发(下)
存管理信息系统设计与开发(下)
131 0
|
存储 编解码 供应链
存管理信息系统设计与开发(上)
存管理信息系统设计与开发(上)
117 0
|
存储 开发框架 安全
【C#本质论 九】值类型-结构之力
【C#本质论 九】值类型-结构之力
81 0
|
数据采集 存储 架构师
谈谈如何理解数据建模也是数据治理的一种形式
数据建模是数据治理的一种形式。我们将数据治理定义为“执行和实施”对数据和与数据有关的资产的定义、生产和使用的权威。
谈谈如何理解数据建模也是数据治理的一种形式
|
前端开发
前端工作总结124-数组转换为对象项目案例
前端工作总结124-数组转换为对象项目案例
96 0
前端工作总结124-数组转换为对象项目案例
|
数据挖掘
带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码(一)
带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码