PDA

Показать полную графическую версию : [решено] AD, LDAP - Organizational Unit, Containers и поиск запросом LDAP


Negativ
12-11-2010, 13:07
В корне домена в АД есть два интересующих меня элемента:
1. Organizational Unit. Его можно создать только в корне домена или внутри другого Organizational Unit. Далее любой из них может содержать группы безопасности и самих пользователей.
2. Контейнер Users. Содержит стандартные группы безопасности, созданные группы безопасности и пользователей.

Задача.
Дано:
а) Существует пользователь test находящийся в OU.
б) Существует группа безопасности TestGroup, находящаяся в контейнере Users.
в) Пользователь test входит в группу безопасности TestGroup.

Вопрос:
Каким образом нужно построить запрос LDAP на соответсвие пользователя данной группе?

Вариант решения (выдающий не явный верный ответ):

/usr/local/libexec/squid/squid_ldap_group -d -b ou=TestOU,dc=domen,dc=local -f "(&(cn=
%g)(member=%u)(objectClass=organizationalUnit))" -F "sAMAccountName=%s" -D cn=admin,cn=Users,dc=domen,dc=local -W /usr/local/etc/opt/pass -h 192.168.1.1 -v 3 -p 389
test TestGroup
Connected OK
user filter 'sAMAccountName=test', searchbase 'ou=TestOU,dc=domen,dc=local'
group filter '(&(cn=TestGroup)(member=CN=Русские крякозяблы,OU=Test2OU,OU=Test1OU,OU
=TestOU,DC=domen,DC=local)(objectClass=organizationalUnit))', searchbase 'ou=TestOU,dc=domen,d
c=local'
ERR

Ivan Bardeen
12-11-2010, 19:16
Вопрос:
Каким образом нужно построить запрос LDAP на соответсвие пользователя данной группе? »
Вопрос у меня, - что должен возвращать LDAP-запрос - еденицу? :) , в случае присутствия пользователя в группе или ноль, в случае отсутствия :)
Задачу подробнее распишите пожалуйста

Negativ
13-11-2010, 08:39
Ivan Bardeen,
Если группа содержит этого пользователя, то возвращается ОК (т.е. единица). Если запрос не верен или группа не содержит данного пользователя, то возвращается ERR (т.е. ноль).
В итоге мне нужно получить от запроса ответ ОК.

Ivan Bardeen
13-11-2010, 10:37
Если группа содержит этого пользователя, то возвращается ОК (т.е. единица). Если запрос не верен или группа не содержит данного пользователя, то возвращается ERR (т.е. ноль).
В итоге мне нужно получить от запроса ответ ОК. »
Я про то, что в функции языка запросов не входит обязанность анализа того, что он (запрос) возвращает. Поэтому, скорее всего вам придется писать скрипт, например на vbscript, функции которого и будут анализировать результат запроса и возвращать вам требуемые 0 или 1

Negativ
16-11-2010, 09:50
Ivan Bardeen,
Мне не требуется 0 или 1. Меня устраивают его стандартные ответы OK и ERR

Ivan Bardeen
16-11-2010, 19:53
Мне не требуется 0 или 1. Меня устраивают его стандартные ответы OK и ERR »
LDAP запрос возвращает NULL или результат, вам поэтому и нужен интерпретатор, который как я понял, NULL превратит в ваш "ERR", а любой результат в ваш "ОК"

Negativ
17-11-2010, 10:15
Ivan Bardeen,
Вы меня снова не поняли. Задача с LDAP рассматривается в контексте скрипта squid_ldap_group, который выдает только два результата OK и ERR. Он и есть интерпретатор.
Главный вопрос в том как построить запрос.

На данный момент, для частичного решения задачи, были созданы группы внутри корневого OU. Лишь в этом варианте запрос возвращает ОК.




© OSzone.net 2001-2012