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

Вопрос о макете LDAP

Я новичок в LDAP и просто пытаюсь научиться. Я использую openldap на debian.

Может ли кто-нибудь прояснить это - или, альтернативно, указать мне какую-то ссылку, которая проясняет эти основные концепции?

Скажем, у меня есть следующая ситуация, которую я хочу представить в ldap

Я управляю компанией. Компания продает серверы, которые устанавливаются на сайтах клиентов. Компания продает некоторые серверы напрямую, а некоторые через торговых посредников. Компания имеет инструмент централизованного администрирования, который может управлять всеми серверами клиентов. Я хочу иметь разные права доступа, когда кто-то входит на сервер.

Есть 3 уровня разрешений P1, P2 и P3.

есть логины для сотрудников компании, реселлеров, а также для сотрудников клиентов.

Доступ каждого сотрудника будет определяться тем, чей он сотрудник - Мои сотрудники будут иметь доступ ко всем серверам - Сотрудники торгового посредника будут иметь доступ только к серверам, которые были проданы торговым посредником. - Сотрудники Заказчика будут иметь доступ только к серверам, принадлежащим Заказчику.

Даже среди всех этих сотрудников уровень доступа будет зависеть от того, есть ли у них разрешения P1, P2 или P3.

т.е. мой сотрудник с доступом P3 может выполнять все операции на всех серверах. Мой сотрудник с доступом P1 может выполнять ограниченные операции на всех серверах Сотрудник торгового посредника с доступом P1 может выполнять ограниченные операции на всех серверах на всех серверах, которые были проданы через этого посредника и так далее, и так далее.

Это то, что я начинаю с dn: dc = mycompany, dc = com objectclass: organization objectclass: dcObject o: mycompany.net dc: mycompany

# Perms #
dn: ou=perms, dc=mycompany,dc=com
objectclass: organizationalUnit

dn: cn=p1, ou=perms, dc=mycompany,dc=com
objectclass: organizationalRole
cn: p1

dn: cn=p2, ou=perms,dc=mycompany,dc=com
objectclass: organizationalRole
cn: p2


# Reseller #
dn: ou=resellers, dc=mycompany,dc=com
objectclass: organizationalUnit

dn: cn=r1, ou=resellers, dc=mycompany,dc=com
objectclass: organizationalUnit
member: uid=xyz, ou=unames, dc=mycompany,dc=com

dn: cn=r2, ou=resellers, dc=mycompany,dc=com
objectclass: organizationalUnit
member: uid=abc, ou=unames, dc=mycompany,dc=com


# Customers #

dn: ou=customers, dc=mycompany,dc=com
objectclass: organizationalUnit

dn: cn=c1, ou=customers, dc=mycompany,dc=com
objectclass: organizationalUnit
member: uid=mno, ou=logins, dc=mycompany,dc=com
member: uid=pqr, ou=logins, dc=mycompany,dc=com

dn: cn=c2, ou=customers, dc=mycompany,dc=com
objectclass: organizationalUnit
member: uid=mno2, ou=logins, dc=mycompany,dc=com


// unames
dn: ou=unames, dc=mycompany,dc=com
objectclass: organizationalUnit
ou: logins

dn: uid=abc, ou=unames, dc=mycompany,dc=com
objectclass: inetOrgPerson
cn: a
sn: bc
employeeType: cn=p2, ou=roles,dc=mycompany,dc=com

dn: uid=pqr, ou=logins, dc=mycompany,dc=com
objectclass: inetOrgPerson
cn: p
sn: qr
employeeType: cn=p1, ou=roles, dc=mycompany,dc=com

Не уверен, что это правильно. Но даже если это правильно, я запутываюсь дальше этого

Как у меня есть серверы? Скажем, я создаю ou = servers, dc = mycompany, dc = com Затем у меня есть одна запись для каждого сервера cn = srv1, ou = servers, dc = mycompany, dc = com и т. Д.

Как узнать, какой сервер принадлежит какому клиенту. Могу ли я добавить участника: внутри клиента? В этом случае у клиента будут некоторые участники, которые являются сотрудниками, и некоторые участники, которые являются серверами. Это нормально?

Или есть способ лучше?

Как я представляю прямых клиентов?

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

Вам может понадобиться дерево, например:

- com - mycompany - (stuff)
                  - resellerN - (stuff)
                              - companyR - (stuff 
                  - companyN - (stuff)

Материал будет состоять из деревьев серверов, пользователей и всего, что вы отслеживаете.

Вам нужно будет настроить ACL для работы на основе контроллера домена авторизованного пользователя. Дайте им доступ к вещам в их DC и ниже.

Это даст вам три уровня постоянного тока, расположенных следующим образом:

  • dc=mycomppany,dc=com
  • dc=resellerN,dc=mycomppany,dc=com
  • dc=companyM,dc=resellerN,dc=mycomppany,dc=com
  • dc=companyN,dc=mycomppany,dc=com

Вам нужно будет создать и протестировать соответствующие ACL регулярных выражений для дополнительных уровней. (Я бы сначала получил доступ к ACL для вашей организации и работал бы оттуда. Я считаю Документация Zytrax очень помогает.