Forum » Programiranje » Apache + Tomcat + (LDAP?)... avtorizacija
Apache + Tomcat + (LDAP?)... avtorizacija
betaX ::
Ojla.
Mam eno vprašanje. Zafrkavam se z eno aplikacijo, ki laufa na Tomcatu 5.5. Avtentiokacija je SSL cetrifikat (Apache 2.2).
Aplikacijo uporabljajo različni userji, zato moram (zgolj pri galeriji slik) narediti avtorizacijo - določen certifikat ne sme videti resource-ov v določenem folderju.
Zdaj pa nikjer na netu ne najdem kakšnega tutoriala, kako "zakleniti" folder slik, da ne bodo vidni za določenega uporabnika (tudi če sam vnese url v browser...). Zadevo je treba sistemsko rešit, a ne vem, kako...
Prosim za pomoč!
Mam eno vprašanje. Zafrkavam se z eno aplikacijo, ki laufa na Tomcatu 5.5. Avtentiokacija je SSL cetrifikat (Apache 2.2).
Aplikacijo uporabljajo različni userji, zato moram (zgolj pri galeriji slik) narediti avtorizacijo - določen certifikat ne sme videti resource-ov v določenem folderju.
Zdaj pa nikjer na netu ne najdem kakšnega tutoriala, kako "zakleniti" folder slik, da ne bodo vidni za določenega uporabnika (tudi če sam vnese url v browser...). Zadevo je treba sistemsko rešit, a ne vem, kako...
Prosim za pomoč!
lp, betaX
b ::
Predvidevam, da imaš Tomcat postavljen za Apachejem, da je dosegljiv s kakšnim ProxyPass ali pa RewriteRule s [P] flagom.
Po mojem imaš dve možnosti:
1. V aplikacijo dodaš še čekiranje avtorizacije, katere imenike lahko vidi določeni uporabnik. Kateri uporabnik je na strani pa preveriš iz DN-ja certifikata.
2. Dodaš še avtentikacijo userjev z uporabniškim imenom in geslom. Tu imaš več možnosti, od htpasswd datotek do LDAP-a in še vse vmes. Nato spet na podlagi tega avtoriziraš dostop do folderjev.
Pri prvi možnosti je treba spreminjat aplikacijo, drugo pa se da morda narediti tudi preko konfiguracije Apacheja. Morda je še kakšna varianta v Tomcatu, ampak ga ne poznam dovolj dobro.
Če pa so folderji vidni v URL-ju, lahko narediš v Apachejevi konfiguraciji:
* HTTP avtentikacija (popup z uporabniškim imenom in geslom). Vir podatkov o uporabnikih je lahko htpasswd datoteka, LDAP, SQL,...
* ko uporabnik pride prek tega pa lahko za določene folderje skonfiguriraš, da jih lahko vidi samo določen uporabnik oz. uporabniki (avtorizacija). Tudi za to je več možnosti, lahko se podatki poberejo iz LDAP-a, meni je to osebno najljubše, sploh če že imaš LDAP imenik.
Poglej si Authentication and Authorization - Apache HTTP Server Version 2.2
Po mojem imaš dve možnosti:
1. V aplikacijo dodaš še čekiranje avtorizacije, katere imenike lahko vidi določeni uporabnik. Kateri uporabnik je na strani pa preveriš iz DN-ja certifikata.
2. Dodaš še avtentikacijo userjev z uporabniškim imenom in geslom. Tu imaš več možnosti, od htpasswd datotek do LDAP-a in še vse vmes. Nato spet na podlagi tega avtoriziraš dostop do folderjev.
Pri prvi možnosti je treba spreminjat aplikacijo, drugo pa se da morda narediti tudi preko konfiguracije Apacheja. Morda je še kakšna varianta v Tomcatu, ampak ga ne poznam dovolj dobro.
Če pa so folderji vidni v URL-ju, lahko narediš v Apachejevi konfiguraciji:
* HTTP avtentikacija (popup z uporabniškim imenom in geslom). Vir podatkov o uporabnikih je lahko htpasswd datoteka, LDAP, SQL,...
* ko uporabnik pride prek tega pa lahko za določene folderje skonfiguriraš, da jih lahko vidi samo določen uporabnik oz. uporabniki (avtorizacija). Tudi za to je več možnosti, lahko se podatki poberejo iz LDAP-a, meni je to osebno najljubše, sploh če že imaš LDAP imenik.
Poglej si Authentication and Authorization - Apache HTTP Server Version 2.2
betaX ::
>> ko uporabnik pride prek tega pa lahko za določene folderje skonfiguriraš, da jih lahko vidi samo določen uporabnik oz. uporabniki (avtorizacija). Tudi za to je več možnosti, lahko se podatki poberejo iz LDAP-a, meni je to osebno najljubše, sploh če že imaš LDAP imenik.<<
Ja, ravno to rabim, pa ne znam. Kaj konkretno moram narediti? Rad bi zadevo rešil popolnoma sistemsko (brez dodatnega programiranja).
Ja, ravno to rabim, pa ne znam. Kaj konkretno moram narediti? Rad bi zadevo rešil popolnoma sistemsko (brez dodatnega programiranja).
lp, betaX
b ::
Poglej si link, ki sem ga podal zgoraj.
Na nivoju Apacheja lahko to narediš tako, da rečeš recimo (primer bo za avtentikacijo in avtorizacijo iz datotek, za LDAP boš moral predelat)
<Location /slike>
AuthUserFile xxx
AuthGroupFile xxx
Require valid-user
</Location>
<Location /slike/folder1>
Require group dostop_do_folder1
</Location>
<Locaton /slike/folder2>
Requrire group dostop_do_folder2
</Location>
in tako naprej.
Ta primer ne dela, napisal sem na hitro da dobiš občutek, kaj te čaka.
Če URL-ji aplikacije niso tako lepo narejeni, lahko morda uporabiš kakšen LocationMatch namesto Location, tako da lahko uporabiš regexe. Če tudi to ni možno, ker so URL-ji aplikacije nagravžni, potem ti preostane samo to, da sprogramiraš omejevanje dostopa preko aplikacije same.
Na nivoju Apacheja lahko to narediš tako, da rečeš recimo (primer bo za avtentikacijo in avtorizacijo iz datotek, za LDAP boš moral predelat)
<Location /slike>
AuthUserFile xxx
AuthGroupFile xxx
Require valid-user
</Location>
<Location /slike/folder1>
Require group dostop_do_folder1
</Location>
<Locaton /slike/folder2>
Requrire group dostop_do_folder2
</Location>
in tako naprej.
Ta primer ne dela, napisal sem na hitro da dobiš občutek, kaj te čaka.
Če URL-ji aplikacije niso tako lepo narejeni, lahko morda uporabiš kakšen LocationMatch namesto Location, tako da lahko uporabiš regexe. Če tudi to ni možno, ker so URL-ji aplikacije nagravžni, potem ti preostane samo to, da sprogramiraš omejevanje dostopa preko aplikacije same.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Prijava z certifikatorm sigen-ca, customOddelek: Izdelava spletišč | 6464 (6100) | jkreuztzfeld |
» | Apache - localhost JA, IP naslov NEOddelek: Omrežja in internet | 6596 (6455) | ManDriver |
» | .htpasswdOddelek: Izdelava spletišč | 1402 (1215) | pizdarija1 |
» | [Apache] htaccess in certifikatOddelek: Programska oprema | 2033 (1830) | MasterBlaster |
» | pomoč pri spletni straniOddelek: Izdelava spletišč | 1019 (864) | AljoOo |