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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.