Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - manik207

Страницы: [1]
1
Егор, здравствуйте.

Помогите прояснить, как лучше заточить openLDAP под такую структуру организации:

Есть организация. В ней три уровня вложенности: департамент (их два), в каждом департаменте по три отдела, в отделах по несколько рабочих групп, (где-то две, где-то пять). В каждом из юнитов (департаменте, отделе, рабочей группе) есть руководство (1-3 человека) и исполнители (все остальные). Это отдельные группы, как-то вложенные в юнитов.

И руководитель рабочей группы является рядовым сотрудником отдела. Т.е. древовидная структура подходит под структуру лдапа.

  Уровень департамента                         Д е п а р т а м е н т 1                                                         Д е п а р т а м е н т 2
                                             /            |           \                                                       /           |         \
 Уровень отдела/отделов                 Отдел1        Отдел2       Отдел3                                                 Отдел1     Отдел2      Отдел3
                     А3{         A4 {   Рук-тель1.1  Рук-тель1.2    Рук-тель1.3}                                     Рук-тель2.1   Рук-тель2.2  Рук-тель2.3  }
                                        /       \                      |                                                 |
Уровень рабочих групп            Рабочая         Рабочая            Рабочая                                          Рабочая
                                 группа1:        группа2:           группа3:                                         группа1
  A0{       А1{       А2{   Руководитель1.1.1    Рук-ль1.1.2 }     Рук-ль1.3.1   }}                                  Рук-тель2.1.1                                        }
                              Исполнитель1        Исп-ль1             Исп-ль1
                              Исполнитель2        Исп-ль2             Исп-ль2


Вопрос вот в чем. Нужны группы, объединяющие руководителей рабочих групп как по отделам, так и по департаментам. И группы, объединяющие руководителей отделов как по отделам, так и по департаментам.

Планирую это для xmpp (и, скорее всего, для других сервисов), для создания разных комнат. Может, на примере будет наглядней.

Группа А0 - объединяет всех руководителей рабочих групп обоих департаментов
Группа А1 - объединяет руководителей рабочих групп всех отделов одного департамента.
Группа А2  - объединяет руководителей рабочих групп одного отдела.

Например. Поступило сообщение в департамент1. "Принять в работу и донести до руководителей рабочих групп следующее...". Все руководители рабочих групп всех отделов одного департамента в одной группе, и получают это сообщение. (А1)
Далее, следует поправка для отдела1, и сообщение отправляется группе А2. Получают его руководитель1.1.1 и руководитель1.1.2 и

Аналогично, на уровне отделов.
Группа А3 - общая группа руководителей отделов обоих департаментов.
Группа А4 - руководители отделов одного департамента

Собственно, это структура. Как-то это распределение по группам в лдап упаковать можно?

2
Добрый день, Егор!

Есть сервер openLDAP, на нем такая структура:
dc=ldap,dc=centos
|\ou=Group
   |\cn=redmine
   |\cn=moodle
   |\ ...
|\ou=People
   |\ou=System
      |\uid=redmine
      |\uid=moodle
      |\...
   |\uid=user1
   |\uid=user2
   |\...

Системные юзеры нужны для авторизации указанных сервисов в лдапе.
Атрибуты такие:
dn: uid=redmine,ou=System,ou=People,dc=ldap,dc=centos
objectClass: account
objectClass: simpleSecurityObject
objectClass: top
uid: redmine
userPassword:: e0NSWVBUfSQ2JEZldFhWUmJIJE9ghNalBqSE5veVo3TnlZV3BONEJ4UFlSa
 nJJS2RRak5dfsgdf5VT2piM0VZdborkedsha512hashnlQaWlCYWxXcTZYL2YzakdkUC93Q2MyOHlJZWFLMEVxcEVz
 ZzEw

Если этот вариант не верный - поправьте, создавала копипастом. Его задача - подключаться от имени сервиса и читать пароли.

Подключаю еще один сервис к лдапу (phpbb). Сервис требует, чтобы было поле mail у пользователя. И если оставить его пустым - выдает ошибку и не авторизует. Добавляю атрибут mail
dn: uid=redmine,ou=System,ou=People,dc=ldap,dc=centos
changetype: modify
add: objectclass
objectclass: iNetOrgPerson
-
add: mail
mail: moodle@domen.ru

При добавлении лдап ругается, что класс account и inetOrgPerson несовместимы.
ldap_modify: Object class violation (65)
        additional info: invalid structural object class chain (account/inetOrgPerson)

Какой другой объектный класс, совместимый с inetOrgPerson, можно использовать для системного пользователя, чтобы пользователь оставался системным и мог читать пароли (но при этом имел атрибут mail)?

3
Егор, здравствуйте!

C memberOf авторизация по группам работает, добавляю группу с пользователями в ней: dn: cn=redmine,ou=Groups,dc=mycompany,dc=ru
objectClass: groupOfNames
cn: redmine-group
member: uid=user1,ou=Users,dc=mycompany,dc=ru
member: uid=user2,ou=Users,dc=mycompany,dc=ru

Теперь нужно добавить еще пять пользователей (user3-user8), пользователей user3 и user5 сразу добавить в группу redmine. Поняла, добавление членства делается через добавление записи об этих пользователях в запись группы  через ldif:
dn: cn=redmine,ou=Groups,dc=mycompany,dc=ru
changetype: modify
add: member
member: uid=user5,ou=Users,dc=mycompany,dc=ru
-
add: member
member: uid=user3,ou=Users,dc=mycompany,dc=ru

Вы говорили, что пользователь, который является member'ом, получает скрытый, невидимый атрибут. Можно ли этот атрибут прописать при создании самого пользователя, без изменения  ldif'ом самой группы? Группу править можно, но интересует, есть ли метод "прямее", а не через окольные пути)))

4
Здравствуйте, Егор. С OpenLDAP и каталогами разбираюсь недавно.

Есть сервер с Redmine 3.1.7, есть сервер OpenLDAP, установлен на Centos 7 из yum, версия 2.4.40. Управляю через phpldapadmin.

Задача: в OpenLDAP создать свыше 50 пользователей (с последующим увеличением до 200 человек), и пять групп Каждой группе разрешен доступ к определенному сервису (Redmine, Asterisk и т.д.). Тестирую на Redmine.

Создаю ou=redmine, в ней cn=redmine-group (posixGroup), в группе создаю пользователей user1, user2 и т.д. При такой схеме авторизация в Redmine проходит замечательно. В Redmine указываю путь до каталога cn=redmine-group,ou=redmine,dc=my,dc=domen. 
Но, насколько я поняла, это из-за того, что группа "родная", т.е. пользователь создан в этой группе, и группа записана в атрибутах пользователя как gid.

Если этих же пользователей добавлять в другие аналогичные группы (для авторизации на других сервисах только членам группы), то это делать нужно через подключенный модуль memberOf.

Как проверить подключен ли он? Нашла здесь как подключить его, по адресу /usr/lib нет директории ldap (или не там ищу?). Добавить атрибут пользователю через phpldapadmin не могу, его нет в выпадающем списке атрибутов.
Как его найти и/или подключить?

Файла slapd.conf есть только в /usr/lib/tmpfiles.d/slapd.conf, его содержимое:
# openldap runtime directory for slapd.arg and slapd.pid
d /var/run/openldap 0755 ldap ldap -

есть cn=config:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
dn: cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}monitor,cn=config
dn: olcDatabase={2}hdb,cn=config

Страницы: [1]