LDAP 模式设计

LDAP 模式设计

我对 LDAP 还很陌生,正在尝试设计一个满足特定需求的模式。

我有一个支持组织。

有三个级别 P1 - 最低权限 P2 - 中间 P3 - 最高权限。

我已将支持团队分成几个子团队。

TeamA 管理客户 A1、A2、A3 等;TeamB 管理客户 B1、B2、B3 等。

客户 A1 有自己的内部用户。每个客户的内部用户都有 2 个权限级别,即 P1 或 P2。他们的 P1 或 P2 权限仅适用于与他们自己相关的内容。即来自客户 A1 的 P2 对客户 A2 没有任何权限。

TeamA 人员(管理客户 A1、A2 等)拥有 P1 或 P2 权限。TeamA 中拥有 P2 权限的人员将拥有 TeamA 管理的每个客户的 P2 权限。即 TeamA P2 将拥有 A1、A2、A3(所有客户)的 P2 权限。

然后是超级支持团队。这里的人员不特定于客户群体。来自超级支持团队的 P2 将拥有客户 A1、客户 B1 的 P2 权限 - 一切权限。P3 的情况类似。

我已经设计了一个架构

# 根节点
dn:dc=myorg,dc=com
对象类:组织
对象类:dcObject
o: myorg.com
直流: myorg

# 群组
dn:ou=组,dc=myorg,dc=com
对象类:组织单位
ou:群组

dn:cn=P1,ou=组,dc=myorg,dc=com
对象类:组织角色
中国: P1
描述:最低级别

dn:cn=P2,ou=Groups,dc=myorg,dc=com
对象类:组织角色
中国:P2
描述:更高级别

dn:cn=P3,ou=Groups,dc=myorg,dc=com
对象类:组织角色
中国:P3
描述:最高级别的支持

# 团队
dn:ou=团队,dc=myorg,dc=com
对象类:组织单位
ou:合作伙伴
描述:团队

# 队 A
dn:ou=teamB,ou=团队,dc=myorg,dc=com
对象类:组织单位
ou:teamA
描述:A队

# B 队
dn:ou=teamb,ou=团队,dc=myorg,dc=com
对象类:组织单位
ou: teamB
描述:B队

# 顾客

# A 队的客户 A1
dn:ou=custa1,ou=teama,ou=Team dc=myorg,dc=com
对象类:组织单位
ou:custa1
描述:一些组织

# B 队的顾客 B2
dn:ou=custb2,ou=teamb,ou=团队,dc=myorg,dc=com
对象类:组织单位
ou:custb2
描述:其他一些组织

到目前为止这是正确的吗?

我遇到了一些困难 - 我如何将来自不同团队,不同客户,超级支持等的人员放进去,以便在使用 uname/passwd 绑定到 ldap 服务器后很容易找出特定用户拥有哪些权限。

有人可以帮助我或者指出一个具有类似要求的示例模式吗?

答案1

我内心的学究必须指出,您在此处创建的不是架构,而是布局。架构定义对象类型和对象的属性,布局定义对象的位置以及为属性分配的值。

那太偏僻了...

当您添加人员时,您将把他们与您定义的组织角色关联起来,并且人员可以属于其中的多个角色。事实上,他们的对象实际所在的位置并不赋予任何权利;这是将 OR 与他们关联起来的行为。当他们绑定时,他们将获得他们所属的 OR 的权利,无论他们的对象在哪里。

为了回答你关于他们拥有什么权利的问题,他们应该在两个地方列出:

  • 在他们的用户对象上
  • 在 organizationRole 对象上

您可以形成 LDAP 查询以从用户对象中提取 orMember 属性,或查询具有该用户成员的所有组织角色对象。用户属性的确切名称取决于您实际使用的 LDAP 架构。

相关内容