Форум проекта Pro-LDAP.ru
Интеграция => Веб-сервисы => Тема начата: carter123 от 04 Апрель 2013, 20:24:31
-
Добрый день
пользуюсь хелперами squid_ldap_auth и squid_ldap_group
Я хочу сделать в squid 2 доступа: inet и noninet
При этом у меня все пользотваели находятся в одной группе people (я не хочу делать подразделения на группы)
Собственно вопрос, как проще организовать принадлежность пользотвателя к определ. группе
1) можно ли сделать чтобы у каждого пользователя к примеру test имелся какой нибудь доп. атрибут и чтобы хелпер определял inet или noninet у данного юзера?
или здесь нужен другой способ?
Спасибо.
-
Здравствуйте! Разумееется, при наличии атрибута с нужным значением, его всегда можно указать в поисковом фильтре, такой пример есть в man squid_ldap_auth (http://linux.die.net/man/8/squid_ldap_auth):
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(specialattribute=value))" ldapserver
То есть, если в записи Вашего пользователя есть атрибут, скажем locality (или какой Вам больше нравится) со значением, допустим, squidInetUser, то хэлпер можно вызывать примерно так:
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(locality=squidInetUser))" ldapserver + остальные параметры
В свете недавнего обсуждения наложения memberof (http://pro-ldap.ru/forum/index.php?topic=50.0) можно попробовать вернуться к предложенной Вами ранее концепции групп для разных приложений (http://pro-ldap.ru/forum/index.php?topic=46.0), то есть сделать группу cn=squid,ou=groups,dc=your,dc=domain и указать, что только её члены будут ходить в интернет через squid:
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(memberOf=cn=squid,ou=groups,dc=your,dc=domain))" ldapserver + остальные параметры
Егор
-
Спасибо Егор
но
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(memberOf=cn=squid,ou=groups,dc=your,dc=domain))" dapserver + остальные параметры
разве не squid_ldap_group здесь должен был быть?
и если у меня будет таких несколько групп скажем inetfull ... inetHalf ... InetRestrict к примеру
то тогда вместо squid будет %a?
-f "(&(uid=%s)(memberOf=cn=%a,ou=groups,dc=your,dc=domain))"
-
вообщем сделал
# test, people, mol.ru
dn: uid=test,ou=people,dc=mol,dc=ru
objectClass: inetOrgPerson
objectClass: posixAccount
cn: test
sn: 1
uid: test
userPassword:: MTIz
uidNumber: 8
gidNumber: 12
homeDirectory: /var/mail/test
description: swell guy
ou: it
# groups, mol.ru
dn: ou=groups,dc=mol,dc=ru
objectClass: organizationalUnit
ou: groups
description: generic groups branch
# inetfull, groups, mol.ru
dn: cn=inetfull,ou=groups,dc=mol,dc=ru
objectClass: groupOfNames
cn: inetfull
description: inetfull
member: uid=test,ou=people,dc=mol,dc=ru
потом проверяю. и ничего не получаю
ldapsearch -x -LLL -b 'dc=mol,dc=ru' '(uid=test)' memberof
dn: uid=test,ou=people,dc=mol,dc=ru
все плаигны влючил
overlay memberof
при рестарте ошибок нет
не подскажите что я делаю не так? на просторах интернета ничего не нашел
прошлую тему перечитал
-------------------------------------------------------------
СДЕЛАЛ
как сделал так и не понял, просто удалил cn=inetfull,ou=groups,dc=mol,dc=ru и заново добавил
что за глюк такой? как такое может быть
-
вроде заработало
/usr/lib64/squid/squid_ldap_group -b "dc=mol,dc=ru" -f "(&(uid=%v)(memberOf=cn=%a,ou=groups,dc=mol,dc=ru))"
test inetfull
OK
Спасибо Егор :)