http digest autentifikace + hesla v DB - VYRESENO
Tomas Macek
macek na fortech.cz
Pondělí Březen 5 13:03:35 CET 2012
On Fri, 2 Mar 2012, Pavel Kankovsky wrote:
> On Fri, 2 Mar 2012, Tomas Macek wrote:
>
>> Modul mod_authn_dbd jsem vynechával, protože z dokumentace mi vyplývalo, že
>> lze použít autentifikaci pouze "require valid-user" nikoli i "require group
>> <grupa>", což jsme původně chtěli taky zachovat.
>
> Moduly mod_authn_... řeší pouze autentizaci tj. ověření hesla a podobné
> funkce. Kontrola toho, zda je uživatel v nějaké skupině, je autorizace
> a tu mají na starosti moduly mod_authz_...
>
> Problém není v tom, že to mod_authn_dbd neumí, ale v tom, že ve 2.2
> chybí mod_authz_dbd (ve 2.4 už je). Tady je prý implementace, která
> ve 2.2 funguje: <http://people.apache.org/~niq/dbd.html>
>
>> Další věc, na kterou jsem narazil je to, že mod_authn_dbd nebyl v žádným
>> repu, který tu mám nakonfigurovaný, takže jsem se snažil vrhnout síly
>> jinam.
>
> Hmm...
>
> $ yum -C whatprovides '*/mod_authn_dbd.so'
> ...
> httpd-2.2.15-15.el6.centos.1.x86_64 : Apache HTTP Server
> ...
>
> Podobně i na pětce. Že by to v SL neměli?
>
>> Nebude-li zbytí, můžu zkusit tohle - pokud mi to teda doporučíte jako
>> smysluplnou možnost.
>
> mod_auth_pgsql je při vší úctě stará neudržovaná vykopávka a lze vygůglil
> stížnosti na to, že to s digest nefunguje.
>
> mod_authn_dbd je oficiální součást Apache, dokumentace se vyjadřuje v tom
> smyslu, že digest auth. je podporována a lze vygůglit informace o
> tom, že to skutečně funguje, např.
> <http://www.webmasterworld.com/apache/4331572.htm>.
>
> Rozhodněte se sám. :)
>
Ještě jednou děkuji za nakopnutí správným směrem! :-)
Modul mod_authn_dbd samozřejmě funguje a je součástí Apache jako takovýho,
není to žádný extra balíček jako jsou jiné mod_auth*. Ale to už jsem psal
dříve.
Třeba to někomu pomůže, aktuálně to mám takhle:
<Location />
AuthName "Intra"
AuthType Digest
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
AuthDigestDomain http://127.0.0.1/
AuthDigestProvider dbd
AuthUserFile /dev/null
# AuthDBDUserPWQuery "SELECT md5(username || ':Intra:' ||
password_plain) FROM usr.admin WHERE username = %s"
AuthDBDUserRealmQuery "SELECT md5(username || ':Intra:' ||
password_plain) FROM usr.admin WHERE username = %s"
require valid-user
</Location>
Chová se to ale podivně: pokud mám nastaveno AuthDBDUserPWQuery a nemám
AuthDBDUserRealmQuery, modul si stěžuje:
"[client 127.0.0.1] No AuthDBDUserRealmQuery has been specified". V
dokumentaci se ale podle mého nic o závislosti jednoho na druhém nepíše.
Vyřešil jsem to AuthDBDUserRealmQuery s pouze jedním použitým parametrem,
popř. jistě bude možné použít parametry 2 ale ten druhý dát do nějaké
nesmyslné podmínky. Perl za normálních okolností tuším řve, že jste
zadali 2 parametry ale chtěli jen jeden a nevím tudíž, jestli takhle to
mám úplně ideálně.
Mnoho vyřešených případů mod_authn_dbd + digest se mi ale najít
nepodařilo, jeden např. zde
http://www.berenddeboer.net/rest/apache_dbd_digest.html
T.
Další informace o konferenci Linux