LINUX.ORG.RU

Админка под LDAP

 ,


2

2

Есть задача: написать админку для редактирования пользователей, созданных в LDAP так, чтобы под обязательные и возможные для заполнения поля, автоматически генерировались поля ввода на форме.

К примеру:

есть такой класс

objectClass ( 1.1.1.1.1.1.1.1.1 NAME 'xxxxxxxxxx'
        DESC 
        SUP inetOrgPerson
        MUST ( uid $ x1 )
        MAY  ( x1 $ x2 $
               x3 $
               x4 $ x5 $
               x6 $ x7 
               )
        )
Как с точки зрения админки «откопать» все имеющиеся в классе MUST и MAY поля, чтобы админка динамически подстраивалась под схему?



Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от Shokerkill

Это и есть web-interface — админка пользователей.

В общем, я к тому, что, прежде чем велосипедить своё и кривое, ознакомся с начала с готовыми решениями. ;)

Их не так уж и много. Точнее даже, это практически одно единственное из годного. Но при этом не самое плохое, из того, что я видел.

beastie ☕☕☕☕☕
()
Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от beastie

Спасибо конечно, но меня интересует написание собственной админки, которая будет являться частью системы. Мы не можем интегрировать другое решение в любом виде. В связи с этим и интересуюсь архитектурой решения проблемы: Как «вытащить» из схемы определенного ObjectClass'а его поля, дабы динамически для них задать поля ввода

Shokerkill
() автор топика
Ответ на: комментарий от Shokerkill

Как «вытащить» из схемы определенного ObjectClass'а его поля, дабы динамически для них задать поля ввода

Запрашивай из LDAP схему интересующего тебя ObjectClass'a и парси, делов то:

ldapsearch -h <host> -D <admin account> -w <admin password> -b «cn=schema» -s base «objectclass=subSchema»

zgen
()
Ответ на: комментарий от zgen

root@lab2:/etc/ldap/schema# ldapsearch -h 127.0.0.1 -D cn=admin,dc=test,dc=com -w password -b cn=schema -s base # extended LDIF # # LDAPv3 # base <cn=schema> with scope baseObject # filter: (objectclass=*) # requesting: ALL #

# search result search: 2 result: 32 No such object

ldapsearch вообще ничего не выводит... Может я что-то не так настроил или использую?

Shokerkill
() автор топика
Ответ на: комментарий от beastie

чем больше смотрю на всё, тем больше понимаю, что AD это реально единственное рабочее решение такого класса, даже админя линукс машины AD получается самым простым решением.

erzent
()
Ответ на: комментарий от Shokerkill

Может я что-то не так настроил или использую?

Ну разумеется надо посмотреть в настройках, где у тебя схемы хранятся, прописать туда доступ, а потом уже подключаться. А ты думал «всё как-нибудь так»?

zgen
()
Ответ на: комментарий от zgen

кастом схему я заливал через olc в cn=schema,cn=config и пытаюсь по фильтру ее вытащить, но ни cn=custom_schema ни просто objectclass=custom_schema не выводят мне мою схемку(

# extended LDIF

#

# LDAPv3

# base <cn=schema,cn=config> with scope baseObject

# filter: cn=custom_schema

#

# search result search: 2 result: 0 Success

Shokerkill
() автор топика
Ответ на: комментарий от zgen

Допустим, что я примерно разобрался с языком запросов, но не знаю как реализовать запрос ldapsearch:

ldapsearch -s base -b «cn=subschema» -D cn=admin,dc=test,dc=com -w password -x -h 127.0.0.1 '(objectclass=subschema)' objectclasses > t.txt

выводит мне все имеющиеся objectClass'ы и это здорово, однако, я не могу реализовать выбор одного определеленного используя фильтр. С этим можете помочь?

Shokerkill
() автор топика
Ответ на: комментарий от zgen

По сути мне нужен выбор данных из уже сделанного ldapsearch'а... Тавтология какая-то, но мне нужен поиск по результату поиска

Shokerkill
() автор топика
Ответ на: комментарий от zgen

Есть веб-админка, которая будет добавлять и редактировать профиль юзера и в задаче стоит не хардкодить поля, а создавать их динамически на случай изменения objectClass'. Лучшее что я нашел - ldapsearch с вышеприведенными параметрами для вытаскивания всех objectClass'ов. Может посоветуете другой подход? Что Вы об этом думаете?

Shokerkill
() автор топика
Ответ на: комментарий от Shokerkill

Я не понимаю что именно вы делаете, слова «и в задаче стоит не хардкодить поля, а создавать их динамически» мне вообще ни о чем не говорят, поэтому пока кроме совета «не заниматься фигней» в голове ничего нет.

Проверить выборку через ldapsearch смогу только вечером или завтра.

zgen
()
Ответ на: комментарий от zgen

Существует профиль пользователя описанный кастомным objectClass'ом. Другой программист пишет веб-админку через которую будут заполняться, скажем, Имя, Фамилия, Пароль и тд. Все сводится к тому, что форма админки содержит определенные поля под LDAP'овский objectClass. В случае изменения objectClass'а в самом LDAP'е, поля админки не изменятся, если не будут знать об этом изменении.

Мне кажется, что админка должна парсить objectClass в LDAP'е перед тем как формировать и выводить на экран форму заполнения данных о пользователе. Для этого и необходимо «НАЙТИ» этот самый objectClass и отделить его от остальных.

ldapsearch -s base -b «cn=subschema» -D cn=admin,dc=test,dc=com -w password -x -h 127.0.0.1 '(objectclass=subschema)' objectclasses

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

Как вытащить из всего того мусора только мой кастомный objectClass?

Shokerkill
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.