Я новичок в 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, в которых они состоят, независимо от того, где находится их объект.
Чтобы ответить на ваш вопрос о том, какие права они получают, их следует перечислить в двух местах:
Вы должны сформировать запрос LDAP, чтобы получить либо атрибут orMember из объекта пользователя, либо запросить все объекты organizationRole с членом пользователя. Точное имя атрибута пользователя зависит от вашей фактической схемы LDAP.