Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   [решено] AD, LDAP - Organizational Unit, Containers и поиск запросом LDAP (http://forum.oszone.net/showthread.php?t=190974)

Negativ 12-11-2010 13:07 1540886

AD, LDAP - Organizational Unit, Containers и поиск запросом LDAP
 
В корне домена в АД есть два интересующих меня элемента:
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 1541149

Цитата:

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

Вопрос у меня, - что должен возвращать LDAP-запрос - еденицу? :) , в случае присутствия пользователя в группе или ноль, в случае отсутствия :)
Задачу подробнее распишите пожалуйста

Negativ 13-11-2010 08:39 1541489

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

Ivan Bardeen 13-11-2010 10:37 1541551

Цитата:

Цитата Negativ
Если группа содержит этого пользователя, то возвращается ОК (т.е. единица). Если запрос не верен или группа не содержит данного пользователя, то возвращается ERR (т.е. ноль).
В итоге мне нужно получить от запроса ответ ОК. »

Я про то, что в функции языка запросов не входит обязанность анализа того, что он (запрос) возвращает. Поэтому, скорее всего вам придется писать скрипт, например на vbscript, функции которого и будут анализировать результат запроса и возвращать вам требуемые 0 или 1

Negativ 16-11-2010 09:50 1543712

Ivan Bardeen,
Мне не требуется 0 или 1. Меня устраивают его стандартные ответы OK и ERR

Ivan Bardeen 16-11-2010 19:53 1544203

Цитата:

Цитата Negativ
Мне не требуется 0 или 1. Меня устраивают его стандартные ответы OK и ERR »

LDAP запрос возвращает NULL или результат, вам поэтому и нужен интерпретатор, который как я понял, NULL превратит в ваш "ERR", а любой результат в ваш "ОК"

Negativ 17-11-2010 10:15 1544585

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

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


Время: 14:02.

Время: 14:02.
© OSzone.net 2001-