Группировка пользователей LDAP с настраиваемым attirbure
У меня есть только небольшие знания, связанные с LDAP, поэтому, пожалуйста, прости меня, если я спрошу что-нибудь глупое.
У меня есть веб-приложение, и я хочу контролировать, какой пользователь может видеть, какие данные. Поэтому я подумал, что пользователь может принадлежать к группе (например, администратор баз данных, специалист по промежуточному программному обеспечению, ребята из UNIX и т. Д.), А вошедший в систему пользователь может видеть только свои данные в приложении.
Я хочу, чтобы LDAP делал аутентификацию. Я предполагаю, что в LDAP такие группы не указаны (т.е. я не хочу использовать группы LDAP, поскольку не могу заставить компанию LDAP создавать группы и помещать пользователей в эти группы).
То, о чем я думаю, - это гибкое решение, такое как возможность использования настраиваемого атрибута для каждого пользователя (скажем, с именем "acces_groups"), для которого группы могут быть перечислены через запятую.
Я прочитал, что для этого нужно изменить схему objectClass (например, organizPerson). Но есть ли простой способ добавить такой пользовательский атрибут для пользователя в LDAP (я говорю об уже работающей компании LDAP)? Или как бы вы решили это (не нарушая / не нарушая текущий LDAP)? Я не сказал, что это за LDAP (OpenLDAP, Active Directory и т. Д.) По какой-то причине, потому что я хотел бы найти общее решение здесь.
Спасибо,
V.
1 ответ
Это два возможных решения / реализации:
Что вы предполагали: вы можете добавить схему, а не изменять
organizationalPerson
объектный. (Поскольку изменение уже созданной схемы сделает ваш LDAP нестандартным) Затем вы добавляете этот objectClas для всех ваших пользователей, чтобы они могли использовать атрибуты, определенные этой схемой.Вы можете определить
acces_groups
атрибут и сделать его многозначным. Вы также можете определить один атрибут для каждого флага, который вам нуженdba
,middleware
и т. д. и сделать его логическим и т. д.Почему бы мне не сделать это:
- Это гораздо более сложный и навязчивый способ сделать это, чем использование встроенных механизмов, которые легко доступны в LDAP.
- Если ваш администратор LDAP позволяет вам изменять ваши схемы LDAP таким образом, не должно быть проблем с тем, чтобы попросить его использовать группы вместо этого, так как этот метод намного менее сложен и требует много времени для реализации.
- Управлять этим ежедневно - просто боль, потому что у вас нет механизма целостности. Все операции "CRUD" над "эмулированной" группой должны выполняться "вручную"
- Если вы хотите удалить группу, вам придется удалить атрибут у всех пользователей, у которых он установлен.
- Если вы хотите перечислить "группу", вам придется искать всех пользователей, у которых атрибут установлен с правильным значением
- и т.п.
Использование групп: вы действительно можете создавать группы, такие как
dba
,middleware
и т. д. и назначьте пользователей этим группам.- Это позволит вам использовать корабль члена группы и автоматически заполнить атрибут вашего пользователя группой, частью которой он является.
- Это стандарт LDAP, и ему нужно иметь дело только с данными, а не с конфигурациями LDAP (что включает простои, возможные ошибки / неудачи и т. Д.)
- Если ваша компания позволяет вам изменять конфигурацию LDAP И данные пользователей, то она также должна позволять вам создавать группы и назначать для них людей.