Closed kanebay closed 4 months ago
您好 @kanebay👋,我已收到您的反馈,我将安排时间考虑您提交的信息并进行回复。-- 这条信息是由自动回复的机器人发出的。
Hello @kanebay. I have received your feedback, and I will arrange time to consider the information you submitted and reply. -- This message is sent by an automatic reply robot.
看这里可以了解当前设计的思路: http://ldapdoc.eryajf.net/pages/5683c6/
你应该创建 cn 类型的分组,然后把用户放进去,检索的时候写: cn=test,dc=eryajf,dc=net ,就可以解决你的问题。
看这里可以了解当前设计的思路: http://ldapdoc.eryajf.net/pages/5683c6/
你应该创建 cn 类型的分组,然后把用户放进去,检索的时候写: cn=test,dc=eryajf,dc=net ,就可以解决你的问题。
请问下,您这里描述的用户放进去的cn类的分组,是指这样:
cn=group,cn=test,dc=eryajf,dc=net;
cn=group1,cn=test,dc=eryajf,dc=net;
cn=group2,cn=test,dc=eryajf,dc=net
搜索入口写:cn=test,dc=eryajf,dc=net
还是这样: cn=test,dc=eryajf,dc=net cn=test1,dc=eryajf,dc=net cn=test2,dc=eryajf,dc=net 搜索入口写:cn=test,dc=eryajf,dc=net
搜索入口应该是你分组的完整dn,也就是 cn=group1,cn=test,dc=eryajf,dc=net,那么搜索入口也应该是 cn=group1,cn=test,dc=eryajf,dc=net
了解了; 我现在的需求是想把如下这种组织关系导入到第三方系统里: group1中的user1(uid=user1,ou=people,dc=eryajf,dc=net),以及group1(cn=group1,cn=test,dc=eryajf,dc=net)这个组; group2中的user2(uid=user2,ou=people,dc=eryajf,dc=net),以及group2(cn=group2,cn=test,dc=eryajf,dc=net)这个组;
导入第三方系统后,能带出来如下组信息: |-group1 空格 |--user1 |-group2 空格 |--user2
这样我就能对group1和group2赋权了,不用通过给每个用户赋权。
请问我如何实现这种,我现在试了多种方式,都不太行,请教下
你看看我这篇文档,应该就会用了:https://wiki.eryajf.net/pages/e78558/
好的 非常感谢,我在看了。
我仔细阅读了文章,也掌握了文章里列到的ldapsearch命令的各个参数。
尝试了几种过滤器语句,但是还是没有思路,不知您能否给点建议? 该如何将组织结构导入第三方系统(第三方支持组织结构导入)
我如果在ou=people,dc=cun,dc=com 这个ou下,即ldap-admin默认用户所属的ou下,手动创建2个cn作为组用,然后在这2个cn下分别手动创建1个uid,以 ou=people,dc=cun,dc=com 为搜索入口,检索条件是 (objectclass=person),是能导入组信息和用户的:
手动创建cn作为组,手动创建uid作为用户,ldap树结构信息是这样的:
> ou=people,dc=cun,dc=com
> cn=test1,ou=people,dc=cun,dc=com
> cn=test2,ou=people,dc=cun,dc=com
> uid=test1,cn=test1,ou=people,dc=cun,dc=com
> uid=test2,cn=test2,ou=people,dc=cun,dc=com
> 导入第三方系统后的组结构(这个就是我想要的):
> |-test1组
> |--test1用户
> |-test2组
> |--user2用户
当前的现象是: ldap-admin控制台上创建的用户,不管分配到哪个组,其实都放在了ou=people,dc=cun,dc=com这个ou下,我仔细研读了设计原则,也明白当前就是这么定的。 ldap-admin控制台上创建的组,却没有放到ou=people,dc=cun,dc=com这个ou,这我也知道也是设计成这样的;我观察了组的属性字段,其中‘uniqueMember’这个字段,关联了本组下的所有用户的dn。
我的问题是: 如何使用您的go-ldap-admin控制台来创建用户和组信息(而不是用phpadmin简陋的控制台界面),且能将将用户和组信息导入第三方系统,像这样:
> 期望的导入第三方系统后的组结构:
> |-test1组
> |--test1用户
> |-test2组
> |--user2用户
期待回复。
大佬能回复下上面我提到的吗?
你看看这样设计是不是就是你想要的效果了:
刚刚创建的时候我发现了,我之前创建的默认group,给指定为cn了,然后按照你设计的,删除掉之后,重新创建为ou了。
剩下的就是你在test1和test2里边加人就可以了。
你是说我创建test1和test2分组的时候,放到group下?group由默认的cn改成OU?
属性创建之后应该无法更改,所以可先删除group,再创建ou类型的group。然后如上截图就可以了
不是太明白; 算啦,已经搞了好几天了,搞不赢,老老实实去搞那个phpldapadmin了,多谢大佬!!!
不是太明白; 算啦,已经搞了好几天了,搞不赢,老老实实去搞那个phpldapadmin了,多谢大佬!!!
手动创建cn作为组,手动创建uid作为用户,ldap树结构信息是这样的:
> ou=people,dc=cun,dc=com
> cn=test1,ou=people,dc=cun,dc=com
> cn=test2,ou=people,dc=cun,dc=com
> uid=test1,cn=test1,ou=people,dc=cun,dc=com
> uid=test2,cn=test2,ou=people,dc=cun,dc=com
话说你已经理解到这里了,现在只是把people换成group,有啥还不理解的吗,我看下来,可能也就只有一点了。
go-ldap-admin默认所有用户在people下,这是没问题的,之后你再创建上边截图的分组,然后把用户添加到cn=test1,ou=group,dc=eryajf,dc=net和cn=test2,ou=group,dc=eryajf,dc=net里就可以了,你不明白的点是什么呢
我反复测试过,我理解在go-ldap-admin管控台上创建的用户,不管添加到哪个组下比如:cn=test1,ou=group,dc=eryajf,dc=net或cn=test2,ou=group,dc=eryajf,dc=net,实际的用户最终的dn,还是 uid=test1,ou=people,dc=cun,dc=com或者 uid=test2,ou=people,dc=cun,dc=com; 这个是你的设计原则,people是换不成别的ou的比如:ou=group,dc=eryajf,dc=net,不知我理解的对不对
这个理解没有问题,的确是这样的。
这样设计针对你的场景,有什么问题吗,毕竟三方应用对接之后,都是通过test1,test2作为用户名登陆,而不是dn。
在go-ldap-admin管控台上创建组和用户后:
现在我的组的dn信息是这样的: cn=test1,ou=group,dc=eryajf,dc=net cn=test2,ou=group,dc=eryajf,dc=net
用户的dn是这样的: uid=test1,ou=people,dc=eryajf,dc=net ##在组1下 uid=test2,ou=people,dc=eryajf,dc=net ##在组2下
问题是: 如果导入的时候,搜索入口写:ou=people,dc=eryajf,dc=net ,过滤条件写:objectClass=person,是可以导入用户的,但是导入的用户全部在people这个组下,导入后结构是这样的: /people/test1 /people/test2
如果导入的时候,搜索入口写ou=group,dc=eryajf,dc=net,过滤条件写:objectClass=person,一个用户都导不进去。
我其实期望的最终效果,是这样的:
|-test1组 |--test1用户 |-test2组 |--user2用户
你对接的这个第三方应用是什么
是SecureLink,一款终端安全软件
再请问下:memberOf属性,是怎么加到 uid对象上的了?我尝试手动加,总是加不进去
我对你说的这个软件不是很熟悉,但是部署了一个jenkins进行测试,至少用我当前的思路,是没问题的。
# 用户
uid=zhangsan,ou=people,dc=eryajf,dc=net
uid=lisi,ou=people,dc=eryajf,dc=net
# 分组
cn=test1,ou=group,dc=eryajf,dc=net
包含用户: uid=zhangsan,ou=people,dc=eryajf,dc=net
cn=test2,ou=group,dc=eryajf,dc=net
包含用户:uid=lisi,ou=people,dc=eryajf,dc=net
从上图也可以看出,测试登陆的时候,会自动识别到lisi这个用户归属于test2这个组。
你可以借鉴参考,如果你这个软件通过这种方式配置不出来,那也许是软件端没有很好地支持,不过一般这些都是通用的,应该没问题。
再请问下:memberOf属性,是怎么加到 uid对象上的了?我尝试手动加,总是加不进去
这应该不是一个属性,我看了下,目前用户对应的属性里边没有这个。关于这一点儿,建议你看这篇文章,https://wiki.eryajf.net/pages/ea10fa/ 读后应该会有所悟。
我对你说的这个软件不是很熟悉,但是部署了一个jenkins进行测试,至少用我当前的思路,是没问题的。
# 用户 uid=zhangsan,ou=people,dc=eryajf,dc=net uid=lisi,ou=people,dc=eryajf,dc=net # 分组 cn=test1,ou=group,dc=eryajf,dc=net 包含用户: uid=zhangsan,ou=people,dc=eryajf,dc=net cn=test2,ou=group,dc=eryajf,dc=net 包含用户:uid=lisi,ou=people,dc=eryajf,dc=net
从上图也可以看出,测试登陆的时候,会自动识别到lisi这个用户归属于test2这个组。
你可以借鉴参考,如果你这个软件通过这种方式配置不出来,那也许是软件端没有很好地支持,不过一般这些都是通用的,应该没问题。
请问下,你这个搜索入口写的是什么了?
原来你是配着截图的,github功能有问题,我回复之后才看到你配图了。
对,你借鉴着配置试试看
好的,谢谢。
你使用了哪个版本? | Which version did you use?
go-ldap-admin-v0.5.16-linux-amd64
问题描述: 在go-ldap-admin创建了分组,并在分组下创建用户后,在应用端导入的时候: 如果搜索入口用 ou=test,dc=test,dc=com (这个ou是分组所在的ou),则提示找不到用户; 如果搜索入口用 ou=people,dc=test,dc=com(所有用户所在的ou),能导入在控制台创建的所有用户,但是导入不了分组信息;
提问: 如何将在控制台创建的用户和组信息,同时导入到应用中?搜索入口应该使用什么? 谢谢