Назад | Перейти на главную страницу

Дизайн схемы LDAP

Я новичок в LDAP и пытаюсь разработать схему для конкретной потребности.

У меня есть служба поддержки.

Существует три уровня P1 - самые низкие разрешения P2 - средние P3 - самые высокие разрешения.

Я разделил команду поддержки на подгруппы.

TeamA управляет клиентами A1, A2, A3 и т. Д. TeamB управляет клиентами B1, B2, B3 и т. Д.

У клиента A1 есть свои внутренние пользователи. Внутренние пользователи каждого клиента имеют 2 уровня разрешений: P1 или P2. Их разрешения P1 или P2 предназначены только для вещей, относящихся к ним самим. то есть P2 от Клиента A1 не будет иметь никаких разрешений для Клиента A2.

Люди TeamA (которые управляют клиентами A1, A2 и т. Д.) Имеют разрешения P1 или P2. Человек из TeamA, имеющий разрешения P2, будет иметь разрешения P2 для каждого клиента, которым управляет TeamA. То есть у TeamA P2 будет P2 для A1, A2, A3 (все они).

Тогда есть супер команда поддержки. Здесь люди не привязаны к конкретным группам клиентов. P2 из команды SuperSupport будет иметь разрешения P2 для клиента A1, клиента B1 - для всего. P3 будет похожим.

Я разрабатываю схему

# Root node
dn: dc=myorg,dc=com
objectclass: organization
objectclass: dcObject
o: myorg.com
dc: myorg

# Groups
dn: ou=Groups, dc=myorg,dc=com
objectclass: organizationalUnit
ou: Groups

dn: cn=P1, ou=Groups, dc=myorg,dc=com
objectclass: organizationalRole
cn: P1
description: Lowest level

dn: cn=P2, ou=Groups,dc=myorg,dc=com
objectclass: organizationalRole
cn: P2
description: Higher level

dn: cn=P3, ou=Groups,dc=myorg,dc=com
objectclass: organizationalRole
cn: P3
description: Highest level of Support

# Teams
dn: ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: partner
description: Teams

# Team A
dn: ou=teamB, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: teamA
description: Team A

# Team B
dn: ou=teamb, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: teamB
description: Team B

# Customers

# Customer A1 of Team A
dn: ou=custa1, ou=teama, ou=Team dc=myorg,dc=com
objectclass: organizationalUnit
ou: custa1
description: Some Org

# Customer B2 of Team B
dn: ou=custb2, ou=teamb, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: custb2
description: Some other Org

Это правильно до этого?

Я немного застреваю за пределами этого - как мне добавить людей из разных команд, разных клиентов, суперподдержку и т. Д., Чтобы после привязки к серверу ldap с помощью uname / passwd было легко понять, какие разрешения у этого конкретного пользователя есть.

Может ли кто-нибудь помочь или указать мне образец схемы для аналогичных требований?

Педант во мне вынужден указать, что то, что вы здесь создаете, - это не схема, а макет. Схема определяет типы объектов и атрибуты объектов, макет определяет, где находятся объекты и какие значения присваиваются атрибутам.

Это в стороне ...

Когда вы добавляете людей, вы связываете их с определяемыми вами организационными ролями, и люди могут принадлежать ко многим из них. Фактически, место, где фактически находится их объект, не дает никаких прав; это акт связывания с ними ИЛИ. Когда они связываются, они получают права OR, в которых они состоят, независимо от того, где находится их объект.

Чтобы ответить на ваш вопрос о том, какие права они получают, их следует перечислить в двух местах:

  • На их пользовательском объекте
  • На объекте organizationRole

Вы должны сформировать запрос LDAP, чтобы получить либо атрибут orMember из объекта пользователя, либо запросить все объекты organizationRole с членом пользователя. Точное имя атрибута пользователя зависит от вашей фактической схемы LDAP.