Re: Re: Squid Ldap

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Sun 30 May 2004 - 01:08:23 MSD

On Sat, 29 May 2004 17:37:41 +0400 (MSD)   <CGatePro@mx.ru> (Alexander V Alekseev) wrote:
> Hello!
>
> On Sat, 29 May 2004 CGatePro@mx.ru wrote:
>
> > Во-первых, при чем тут поиск? Если Вы хотите сказать, что это клиент
> >ходит к
> > этому squid при помощи SASL протоколов (таких как CRAM_MD5), то тогда Вам
> Конечно.
>
> > МОЖЕТ быть нужен "чистый" clear text пароль юзера, чтобы реализовать
> > CRAM_MD5 в самом этом squid. Даже в этом случае поиск Вам не нужен,
> >потому
> > что Вы знаете имя пользователя, и, значит, пожете построить его DN.
> >Сразу.
> Я имел ввиду, что придется сделать search, и ваш "правильный" подход:
>
> > > > Я надеюсь, Вы делаете нормально, то есть формируете DN:
> > > > uid=username,cn=domain.com и пытаетесь выполнить BIND операцию с этим
> > > > DN и паролем пользователе, как BIND DN?
> не работает. Более того, он почти всегда не работает, поскольку внешние
> системы стараются проверять аутентификацию унифицированно, вне
> зависимости от используемого конкретным пользователем протокола.
> Правильное имя построить можно. Но все равно это будет не BIND,
> а SEARCH.
Почему SEARCH-то? К Вам приходят и говорят "Я Вася, у меня то-то и то-то". Вы что, действительно будете искать Васю по всем сусекам, или просто подойдете к шкафу с надписью "Васи", откроете его, и вытащите карточку с надписью "Вася"?

Откуда тут берется какой-то SEARCH?!
> > б) проксировать SASL протокол с внешнего клиента в SASL протокол LDAP,
> > используя сообщенное в начале SASL протокола имя в качестве BIND DN.
> Здесь можно чуть подробнее? Как это?

Что "как это"? Хотите конкретно - давайте конкретный пример. Для HTTP CRAM-MD5 пока никто не использовал.
> > Я не знаю, почему Вы говорите о CRAM-MD5, ни один известный мне браузер
> >его
> > не поддерживает. А вот DIGEST-MD5 - поддерживают. Только в HTTP это
> > DIGEST-MD5, а в SASL- это другой DIGEST-MD5, и там надо аккуратно
> > разбираться, как проксировать. А вот NTLM (который понимает по крайней
> >мере
> > Explorer) можно проксировать прямо.
> В принципе, вопрос про squid просто под руку подвернулся. Просто
> вы уже много раз писали без оговорок, что при аутентификации внешних
> систем нужно пользоваться только BIND. Поскольку мне это еще ни разу не
> удалось сделать (кто ж в наше время пароли передает) - решил заметить,
> что тут надо сделать большую оговорку. А еще лучше, такие методы
> рекомендовать лишь для тех протоколов, которые можно проксировать. Если
> вы где-то напишите как.

Давайте конкретный пример. Если речь идет, скажем, о DIGEST-MD5, то там происходит следующее:
а) клиент дает запрос.
б) его посылают на, передавая в качестве параметра тип поддерживаемой аутентификации (DIGEST, например) и реалм.
б) клиент перепосылает запрос с хедером "Authorize" или каким другим (от протокола зависит) и с параметрами типа realm="www.mydomain",username=zzzz,algorithm=xxxx,....

На что Ваш прокси суетсся в LDAP, с командой BIND, с параметром 3 (SASL) и типом аутентикации DIGEST-MD5. Cервер ему отвечает с неким challenge. Который надо разобрать, и ответить клиенту с кодом 401, и с хедером, содержащим разобранные параметры. На что браузер еще раз перепошлет запрос, с еше большим набором параметров хедера Authenticate. Их надо разобрать, и переупаковать в формат, требуемый LDAP и ответить серверу на его challenge с этими параметрами. На что сервер ответит LDAP response с да/нет, и еще, кстати, добавит дополнитеьно один ответ - его тоже надо получить, сделав одну client-server transaction.

Для того, чтобы это все представить наглядно, возьмите нормальный IMAP клиент, который поддерживает DIGEST-MD5, и попробуйте залогиниться. Посмотрите, что так кто передает.

Потом попробуйте залогиниться на сервер через HTTP (WebAdmin, например), когда включено "Advertise Digest" в OBSUCURE settings. Посмотрите, как рабоет это.

Потом попробуйте написать прокси из HTTP в IMAP для аутнентификации, используя DIGEST-MD5. Когда получится, попробуйте переписать, используя LDAP вместо IMAP.   
> Bye. Alex.
>
>
> --
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <CGatePro@mx.ru>.
>
> Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru>
> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru>
> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>
> Для административных запросов адрес <CGatePro-request@mx.ru>
>
>
>

Sincerely,
Vladimir Получено Sat May 29 21:08:30 2004

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