gpt4 book ai didi

ldap - LDAP中的嵌套组通常是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 02:08:09 25 4
gpt4 key购买 nike

我将 LDAP 作为管理工作中的访问服务器和源代码的可能工具,虽然我已经能够掌握基本概念,例如将用户和机器表示为实体、创建属性以及定义哪些属性应该根据应用于它们的 objectClasses 应用于实体,有一些错误对我来说仍然没有意义,我希望有人可以帮助解释它们是如何工作的。

嵌套组如何工作?

我可以理解什么是ou(组织单位),并且我可以理解将人员放入其中,并使用 groupOfNames 类充当成员的容器,就像来自的这个 LDIF 片段zytrax :

    # create FIRST Level groups branch

dn: ou=groups,dc=example,dc=com
objectclass:organizationalunit
ou: groups
description: generic groups branch

# create the itpeople entry under groups

dn: cn=itpeople,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: itpeople
description: IT security group
member: cn=William Smith,ou=people,dc=example,dc=com

# create the hrpeople entry under groups

dn: cn=hrpeople,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: hrpeople
description: Human Resources group
member: cn=Robert Smith,ou=people,dc=example,dc=com

我如何添加更多级别的嵌套?

我想要的是这样的伪代码:

ou='Projects' /
description: This top level group has a few people in it that can create new groups, and control who's in them
member: cn=Robert Smith,ou=people,dc=example,dc=com

-- somethingsomethingAbitrarilyNestedGroup='project-name'
member: cn=Robert Smith,ou=people,dc=example,dc=com

-- groupOfNames = 'project-name development'
member: cn=Robert Smith,ou=people,dc=example,dc=com
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server1$,ou=servers,dc=example,dc=com

-- groupOfNames = 'project-name staging'
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server2$,ou=servers,dc=example,dc=com

考虑到这个层次结构,现在向该群组授予访问权限的最佳方式是什么?

我没有看到一种简单的方法可以在这里进行任意组嵌套 - 在可用的普通类中,而不使用昂贵的闭源工具,但感觉它不应该这么复杂。

通常如何使用 OpenLDAP 等工具来完成此操作,以便其他 LDAP 客户端在经过身份验证为具有正确权限的用户后控制组成员身份? ?

最佳答案

您的问题有点困惑 - 我不确定您在最初几段中的意思是“现在向该组授予访问权限的最佳方式是什么”。

嵌套组非常简单。如果您使用的是 groupOfNames 对象类,只需向父组添加另一个 member 属性,其值为子组的 DN。

来自您的伪代码:

# Assuming your "groups" OU already exists...
# First create the child groups

dn: cn=project-name development,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: project-name development
member: cn=Robert Smith,ou=people,dc=example,dc=com
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server1$,ou=servers,dc=example,dc=com

dn: cn=project-name staging,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: project-name development
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server2$,ou=servers,dc=example,dc=com

# Now create the parent group
dn: 'project-name,ou=groups,dc=example,dc=com'
objectclass: groupofnames
member: cn=Robert Smith,ou=people,dc=example,dc=com
member: cn=project-name staging,ou=groups,dc=example,dc=com
member: cn=project-name development,ou=groups,dc=example,dc=com

OU 内的层次结构实际上只是根据组织的结构将 LDAP 树分成“逻辑”段。因此,例如,您可以将所有管理“开发部门”的组放在自己的 OU 中,这样就可以清楚地了解它们的所属内容。通过使用适当的属性(在本例中为 member)相互引用,对象可以相互引用,并且可以非常愉快地嵌套。

关于ldap - LDAP中的嵌套组通常是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4607361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com