Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Internetchik

Страницы: [1]
1
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 25 Апрель 2013, 12:02:07 »
Егор! Спасибо Вам огромное за помощь и поддержку! Все работает как надо! Чуть позже выложу HowTo, по проделанной работе, ибо в инете (как не странно) ничего подобного нет! А еще по позже все же постараюсь добавить атрибут. Еще раз огромное спасибо Вам и Вашему Проекту!

2
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 24 Апрель 2013, 12:43:49 »
Еще вопрос относительно самого анонимного запроса. Получается так, что ldap поддерживает анонимные запросы, в то время как AD их отклоняет.  Получается самым лучшим вариантом такая схема: Анонимный запрос => Ldap => Авторизованный запрос => AD.  Какой функцией заставить ldap подменять bind dn запроса? я видел функции authzfrom и athzto и authregex, но у меня сложилось впечатление что это не то.  Так же видел authid-rewrite, но вот с ней мне не совсем понятно как работать.

3
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 24 Апрель 2013, 07:30:52 »
Вы правильно поняли. Но этот фильтр так же необходим для ограничения доступа пользователей. Так если не выставлять никаких правил, то обычный менеджер может просмотреть информацию по компьютерам и принтерам ( что не так страшно), а так же просмотреть имеющиеся группы безопасности и политики (чего уже точно не хотелось бы). Вариант предложенный Вами конечно работает, но очень не гибкий и не очень удобен при использовании в компании с кучей организационных юнитов в домене. Приходится создавать кучу правил и неустанно следить чтобы в разрешенные папки не попало ничего лишнего, а ведь человеческий фактор он такооой...!

4
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 23 Апрель 2013, 14:39:47 »
Эх... Не хотелось изначально так поступать, ибо это немного неудобно по ряду причин. Но я сделаю по Вашему совету. А нельзя ли как - то добавить samaccounttype в ldap? Например если подключить его схемой? http://msdn.microsoft.com/ru-RU/library/windows/desktop/ms679637(v=vs.85).aspx здесь я описание данного атрибута. К сожалению мне не хватает понимания всей системы чтоб реализовать это самому.

5
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 22 Апрель 2013, 15:35:38 »
Всем привет! Я собрал openldap:

./configure --with-tls=openssl --enable-debug=yes --enable-syslog=yes --enable-modules=yes --enable-rewrite=yes --enable-slapd=yes --enable-backends=yes --enable-overlays=yes --enable-sql=no --enable-ndb=no

Сделал его как Proxy к AD:

slapd.conf

include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

allow bind_v2

pidfile         /usr/local/var/run/slapd.pid
argsfile        /usr/local/var/run/slapd.args

moduleload    back_bdb.la
moduleload    back_ldap.la

database        ldap
readonly        on
suffix          "dc=my-domain,dc=local"
rebind-as-user
uri             ldap://10.110.5.241/
chase-referrals yes


Делаю запрос из адресной книги thunderbird c указанием фильтра (sAMAccountType=805306368) и пользователем из AD, получаю то, что ищу:

localhost slapd[27237]: conn=1000 fd=10 ACCEPT from IP=10.110.1.71:58915 (IP=0.0.0.0:389)
localhost slapd[27237]: conn=1000 op=0 BIND dn="cn=Иванов,ou=Domain Users,ou=Almaty,dc=my-domain,dc=local" method=128
localhost slapd[27237]: conn=1000 op=0 BIND dn="cn=Иванов,ou=Domain Users,ou=Almaty,dc=my-domain,dc=local" mech=SIMPLE ssf=0
localhost slapd[27237]: conn=1000 op=0 RESULT tag=97 err=0 text=
localhost slapd[27237]: conn=1000 op=1 SRCH base="dc=my-domain,dc=local" scope=2 deref=0 filter="(&(?sAMAccountType=805306368)(|(mail=*kas*)(cn=*kas*)(givenName=*kas*)(sn=*kas*)))"

localhost slapd[27237]: conn=1000 op=1 SRCH attr=description notes title sn surname mozillaHomeLocalityName givenName mozillaHomeState mail mozillaWorkUrl workurl labeledURI o company mozillaNickname xmozillanickname mobile cellphone carphone modifytimestamp nsAIMid nscpaimscreenname telephoneNumber birthyear c countryname mozillaHomeStreet cn commonname postalCode zip mozillaCustom1 custom1 mozillaHomeCountryName homePhone st region mozillaCustom2 custom2 mozillaSecondEmail xmozillasecondemail facsimiletelephonenumber fax mozillaCustom3 custom3 mozillaUseHtmlMail xmozillausehtmlmail mozillaHomeStreet2 birthday street streetaddress postOfficeBox mozillaCustom4 custom4 mozillaHomeUrl homeurl l locality pager pagerphone ou department departmentnumber orgunit birthmonth mozillaWorkStreet2 mozillaHomePostalCode objectClass

localhost slapd[27237]: conn=1000 op=1 SEARCH RESULT tag=101 err=0 nentries=15 text=

Проблема в том, что мне необходимо сделать фильтр к AD, так чтобы в адресной книге при поиске выдавались только пользователи без компьютеров, принтеров и тп, и при этом пользователи не могли этого изменить просто убрав фильтр из почтовика. Для этого добавляю в slapd.conf:

access to dn.subtree="dc=my-domain,dc=local" filter="(&(sAMAccountType=805306368)(|(mail=*)(cn=*)(givenName=*)(sn=*)))"
    by users read

Повторяю запрос с почтовика и ничего не получаю в ответ:
localhost slapd[9599]: conn=1001 fd=14 ACCEPT from IP=10.110.1.71:59725 (IP=0.0.0.0:389)
localhost slapd[9599]: conn=1001 op=0 BIND dn="cn=Иванов,ou=Domain Users,ou=Almaty,dc=my-domain,dc=local" method=128
localhost slapd[9599]: conn=1001 op=0 BIND dn="cn=Иванов,ou=Domain Users,ou=Almaty,dc=my-domain,dc=local" mech=SIMPLE ssf=0
localhost slapd[9599]: conn=1001 op=0 RESULT tag=97 err=0 text=
localhost slapd[9599]: conn=1001 op=1 SRCH base="dc=my-domain,dc=local" scope=2 deref=0 filter="(&(?sAMAccountType=805306368)(|(mail=*kas*)(cn=*kas*)(givenName=*kas*)(sn=*kas*)))"

localhost slapd[9599]: conn=1001 op=1 SRCH attr=description notes title sn surname mozillaHomeLocalityName givenName mozillaHomeState mail mozillaWorkUrl workurl labeledURI o company mozillaNickname xmozillanickname mobile cellphone carphone modifytimestamp nsAIMid nscpaimscreenname telephoneNumber birthyear c countryname mozillaHomeStreet cn commonname postalCode zip mozillaCustom1 custom1 mozillaHomeCountryName homePhone st region mozillaCustom2 custom2 mozillaSecondEmail xmozillasecondemail facsimiletelephonenumber fax mozillaCustom3 custom3 mozillaUseHtmlMail xmozillausehtmlmail mozillaHomeStreet2 birthday street streetaddress postOfficeBox mozillaCustom4 custom4 mozillaHomeUrl homeurl l locality pager pagerphone ou department departmentnumber orgunit birthmonth mozillaWorkStreet2 mozillaHomePostalCode objectClass

localhost slapd[9599]: conn=1001 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=

Может подскажите в чем причина данного провала?

6
Access Control List (ACL) / Re: filter=(objectcategory=person)
« : 18 Апрель 2013, 16:24:48 »
Прошу прощения, что не отвечал столь долго (признаться ждал уведомление на мыло).
OLAG прочел, только благодаря ей и дошел к тому, что получилось. LFRS сейчас начну.
Пересобрал Openldap из исходников, с Barkeley DB и по всем правилам. Теперь можно использовать (&(objectCategory=person)(objectClass=user)) в почтовике, и ldap передает запрос прозрачно.
Вы совершенно правы, в том, что мое правило не выполнялось при запросе. к примеру запрос из Thunderbird (я тоже пришел к такому решению, только через значительное количество времени :D):
conn=1000 op=1 SRCH base="dc=my-domen,dc=local" scope=2 deref=0 filter=(?objectClass=user)(?objectcategory=person))(|(mail=*kas*)(cn=*kas*)(givenName=*kas*)(sn=*kas*)))"Но у меня есть необходимость сделать так, чтобы при запросе с адресной книги, видны были только пользователи, без компьютеров и тд, и все это на уровне сервера. Что я и старался сделать с помощью директивы access. Зная какой запрос посылает почтовик, запросто можно подогнать под него и фильтр на сервере. В связи с этим Вы, случайно, не знаете природу "?", что образовались перед objectClass и objectcategory, ибо их в фильтре я не указывал, а ldap их в синтаксисе не приемлет? У меня сложилось впечатление, что openldap не знает, что такое "objectcategory"...

7
Access Control List (ACL) / filter=(objectcategory=person)
« : 11 Апрель 2013, 10:19:57 »
Всем привет! Парни подсобите. Настроил ldap проксёй к AD. Все ищется все получается, в общем полное счастье. Только при поиске он ищет и выдает также и компьютеры и принтеры, чего не хотелось бы. Не могли бы вы подсказать мне правильный фильтр? Версия Centos 5.9, Openldap 2.3.43-25.

slapd.conf :

database        ldap
readonly        on
suffix         "dc=mydomain,dc=local"
rebind-as-user
uri             "ldap://10.110.5.241/"  #domain controller AD
chase-referrals yes
rootdn          "cn=user1,cn=users,dc=mydomain,dc=local"
rootpw  {SSHA}secret
directory /var/lib/ldap

index objectClass,objectCategory        eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

access to dn.subtree="dc=mydomain,dc=local" filter="(&(objectCategory=person)(objectClass=user))"    # Сделал такое по руководству, потом еще и нагуглил такой же                       #вариант после серии неудач
        by * read

При запросе с другой машины:

ldapsearch -x -h 10.110.5.15 -b dc=mydomain,dc=local -D cn="Иван Иванов",ou="Domain Users",ou=OtdelA,dc=mydomain,dc=local -W '(&(Ob'ectCategory=person)(ObjectClass=user))' 'петров'
Enter LDAP Password:

Получаю:

# extended LDIF
#
# LDAPv3
# base <dc=mydomain,dc=local> with scope subtree
# filter: (&(ObjectCategory=person)(ObjectClass=user))
# requesting: петров
#

# search reference
ref: ldap://komfort.mydomain.local/DC=komfort,DC=mydomain,DC=local

# search reference
ref: ldap://ForestDnsZones.mydomain.local/DC=ForestDnsZones,DC=mydomain,DC=local

# search reference
ref: ldap://mydomain.local/CN=Configuration,DC=mydomain,DC=local

# search reference
ref: ldap://DomainDnsZones.mydomain.local/DC=DomainDnsZones,DC=mydomain,DC=local

# search reference
ref: ldap://mydomain.local/CN=Schema,CN=Configuration,DC=mydomain,DC=local

# search result
search: 2
result: 0 Success

Хотя если убрать фильтр из slapd.conf и запроса все покажет. Если фильтр не указать ругается на права доступа.

P.S. Несколько уточняющих вопросов. Я правильно понял, что :
1) При установке подобного фильтра, доступ к базе разрешается только при использовании этого фильтра и ни какого другого?
2) Если указать данный ldap-сервер в thunderbird, то в почтовике также необходимо указать фильтр запроса как в запросе из командной строки?
3) Если мне необходим будет анонимный доступ к базе, то в запросе мне не нужно будет указывать имя aka _"-D cn="Иван Иванов",ou="Domain Users",ou=OtdelA,dc=mydomain,dc=local ", но в самом фильтре также указать by anonymous auth?

Страницы: [1]