Re: Re: Squid Ldap

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Mon 31 May 2004 - 13:49:59 MSD

On Mon, 31 May 2004 11:20:18 +0400 (MSD)   <CGatePro@mx.ru> (Alexander V Alekseev) wrote:
> Hello!
>
> On Mon, 31 May 2004 CGatePro@mx.ru wrote:
>
> > > > Почему SEARCH-то? К Вам приходят и говорят "Я Вася, у меня то-то и
> >то-то".
> > > > Вы что, действительно будете искать Васю по всем сусекам, или просто
> > > > подойдете к шкафу с надписью "Васи", откроете его, и вытащите
> >карточку с
> > > > надписью "Вася"?
> > > >
> > > > Откуда тут берется какой-то SEARCH?!
> > > Вот только что посмотрел RFC-2251 . Нашел там операции
> > > BIND, UNBIND, SEARCH, Modify, Add, Delete, Compare, Abandon и
> > > ExtendedRequest. Если SEARCH пользоваться нельзя, то как получить
> > > данные? (Что DN однозначно определяет одну запись - это понятно.)
> >
> > Не надо получать данные.
> >
> > Вам надо сделать идентификацию пользователя, это boolean операция, она
> > возвращает либо "да", либо "нет" - нет возврата данных. У ldap тоже самое
> > делает ldap_bind*. То есть надо в n итераций набрать достаточно данных
> >для
> > вызова того или иного ldap_bind*:
> >
> > int ldap_bind(ld, who, cred, method)
> > int ldap_bind_s(ld, who, cred, method)
> > int ldap_simple_bind(ld, who, passwd)
> > int ldap_simple_bind_s(ld, who, passwd)
> > int ldap_kerberos_bind_s(ld, who)
> > int ldap_kerberos_bind1(ld, who)
> > int ldap_kerberos_bind1_s(ld, who)
> > int ldap_kerberos_bind2(ld, who)
> > int ldap_kerberos_bind2_s(ld, who)
> >
> > ( у меня достаточно старая библиотека от openldap непомнюверсии :) ),
> > позвать этот ldap_bind и вернуть cgp/пользователю результат операции:
> >если
> > успешно, то считает пользователь идентифицированным, если не успешно, то
> > не идентифицированным.
> >
> > Далее, если все ldap_bind отработал успешно ( мы идентифицировали
> > пользователя ) - надо не забыть позвать ldap_unbind*, чтобы не плодить
> > возможного memory leak в ldapd сервисе.
> >
> > Если мы не собираетесь реализовывать ldap ( ПРОТОКОЛ ) самостоятельно, то
> > читать надо не только/сколько rfs по протолоку, а еще и rfc по c-binding:
> > 1823. Можно читать сам rfc, можно читать документацию от Вашей ldap
> >библиотеки.
> Опять 25... В том, на что вы ответили, разговор шел о
> внешней системе, которой может потребоваться получить пароль пользователя
> из LDAP в явном виде. Приведенные вами вызовы этого сделать не позволяют.
>
> Ниже, господин Бутенко описал идею прокси, которая приведенными
> вызовами не реализуется - там надо лезть внутрь библиотеки.

Почему не реализуется? Реализуется. Только если она написана пионэрами, то эта библиотека будет делать те самые search, о которых я говорил. А судя по ее интерфейсам (если у нее "who" - это ИМЯ, а не DN) - то делать она search'и таки будет за обе щеки - и именно про таких вот "LDAP-писателей" я и говорил.

Но - это же oупен соурсе, и поэтому "каждый пользователь сможет легко сам довести нашу программу до работоспособного состояния".   

> Bye. Alex.

Sincerely,
Vladimir Получено Mon May 31 09:50:04 2004

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:13:06 MSK