Re: Re: Squid Ldap

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Mon 31 May 2004 - 14:27:39 MSD

On Mon, 31 May 2004 11:31:33 +0400
  <CGatePro@mx.ru> (Michael Kulakov) wrote:

>
> Если я правильно и внимательно прочитал текст от г-на Бутенко, то речь там
> идет именно о запросе с пользователя в несколько отераций достаточного
> кол-ва данных для вызова ldap_bind*.

Насколько *я понял*, речь исходно шла о следующем:

есть некая система (squid), позволяющая пользователям, работающим по ее протоколам (допустим, HTTP) пред"являть свои credentials, для того, чтобы получить от системы более вкусное обслуживание.

Ставилась задача - как проверить эти credentials (то есть аутентифицировать юзера) через LDAP, подсоединяясь с другой стороны к CGatePro.

Ответ на эту (понятую мною, не факт что исходно предложенную) задачу сводился
к тому, что надо просто делать в этой системе LDAP BIND. При этом были сделаны следующие замечания:
1) LDAP BIND должен быть именно LDAP BIND, а не экзерсисы пионеров, которые сначале сделают SEARCH по из пальца высосанным критериям и найдут непонятно что в качесте BIND DN. BIND DN должна формировать сама система, сообразно Directory Layout используемой директории. В случае CGatePro default layout дает для BIND DN uid=<username>,cn=<domainname>

2) для имплементирования не-plain методов аутентификации необходимо "протянуть" SASL-переговоры через систему, выступающую в данном случае как прокси. В случае, если система обслуживает сессионные протоколы (на которые рассчитан SASL) это не есть проблема, а вот в случае транзакционного протокола (типа HTTP) это таки проблема. Далее я не претендую на строгость и правильность, но вот примерная схема: (C: - HTTP client, S: - squid, L: squid ldap client A: CGatePro LDAP server)

C: GET / something

                       L: LDAP BINDRequest: method=DIGEST-MD5
                       A: LDAP BINDresponse: 
challenge=".....,nonce=zzzzz,realm=kkkkkk,opaque=hhhh,qop=auth,alg=MD5-sess" S: 401 AUTH needed

    WWW-Authenticate: DIGEST
realm="kkkkkk",nonce="zzzzzzz",opaque="hhhhhh",qop="auth",algorithm=MD5 C: GET /
    Authorization: Digest username="user", realm="kkkkkk", qop="auth", algorithm=md5,uri="zzzzzAccess.html", nonce="zzzzzzz",realm="kkkkkkkk"

                       L: LDAP BINDRequest: .....
                       L: LDAP BINDResponse: OK/BAD
S: 200 OK

    <data>

Sincerely,
Vladimir Получено Mon May 31 10:27:44 2004

Этот архив был сгенерирован hypermail 2.1.8 : Tue 21 Feb 2006 - 03:15:01 MSK