Meniu

Autorizarea accesului la resurse web in Apache

Protocolul HTTP, permite limitarea accesului la anumite resurse prin intermediul unui mecanism bazat pe codul de stare 401 (Unauthorized). În momentul in care browser-ul incearca accesarea unei resurse la care accesul este limitat, serverul de web va raspunde cu codul de stare 401. Serverul va include in raspunsul sau si header-ul "WWW-Authenticate", care va informa browser-ul despre modalitatile de autentificare. Browser-ul trebuie sa raspunda prin repetarea cererii, care trebuie sa includa header-ul HTTP "Authorization". În cazul in care continutul header-ului "Authorization" nu este valid sau nu ofera utilizatorului suficiente drepturi pentru accesul la respectiva resursa, serverul va raspunde prin acelasi cod de stare. Browser-ul, poate repeta aceste cereri de un numar nelimitat de ori.

Pentru mai multe informatii consultati RFC 2616 si RFC 2617

Controlul accesului

Pentru a restrictiona accesul la o anumita resursa puteti folosi urmatoarea secventa de directive

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen 
AuthType
specifica tipul de autentificare folosit, si poate lua valorile Basic sau Digest. Metoda Digest, este mai sigura, dar nu este suportata de toate browser-ele
AuthName
specifica numele generic al resursei la care se limiteaza accesul
AuthUserFile
este numele unui fisier text, care contine asocieri intre username si parole criptate.

Daca doriti sa autentificati multi utilizatori, poate fi util sa utilizati directiva AuthDBMUserFile, care foloseste un fisier de tip dbm pentru stocarea datelor.Sau in alte cazuri puteti folosi o alte module care stocheaza datele in diverse baze de date.

Require
specifica ce conditii trebuie sa fie indeplinite pentru a putea accesa resursa respectiva. Acestea pot fi:
valid-user
utilizatorul sa fie valid
user [lista utilizatori]
utilizatorul sa apartina unei liste de utilizatori
  Require user vasili ion mary
group [lista grupuri]
utilizatorul sa apartina unui grup dintr-o lista de grupuri
  Require group fina it 

În cazul in care doriti ca autorizarea sa se faca pe baza de grupuri trebuie sa specificati folosind directiva AuthGroupFile fisierul unde se gasesc grupurile si utilizatorii care apartin fiecarui grup

Pentru a face acest lucru in Apache, trebuie in primul rind sa verificati ca aveti acces la fisierul de configurare al server-ului (in mod obisnuit acesta se afla in /etc/httpd/ sau /etc/apache/ si se numeste httpd.conf). În cazul in care nu aveti dreptul de scriere pe acest fisier, puteti folosi fisiere de tipul .htacces.

Setul de directive de mai sus poate fi folosit in diverse sectiuni ale fisierului de configurare Apache pentru a limita diverse tipuri de resurse:

  • În cadrul fisierului .htaccess, caz in care va limita accesul la directorul in care se afla fisierul .htacces
  • În definitia unui director, caz in care va limita accesul la directorul respectiv precum si la sub-directoarele acestuia.
 AuthType Basic
 AuthName "Restricted Files"
 AuthUserFile /usr/local/apache/passwd/passwords
 Require user rbowen  
  • In interiorul unei directive de tip Files, caz in care va restrictiona accesul la fisierele respective. AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen

Fisiere de tip ".htaccess"

Pentru a utiliza fisiere de tip .htaccess, in configuratia server-ului trebuie sa existe urmatoarele doua directive.

 AccessFileName .htaccess 
 ...
 AllowOverride AuthConfig  

- AccessFileName

- directiva care specifica numele fisierului de tip .htaccess

- AllowOveride

- directiva care permite interpretarea de catre Apache a directivelor de configurare a autentificarii aflate in fisierele de tip .htaccess.

Aceasta directiva trebuie sa se afle in contextul corespunzator directorului in care se vor gasi resursele la care vreti sa limitati accesul. .... AllowOverride None ... .... AllowOverride All ......

Configuratia de mai sus specifica faptul ca Apache va ignora fisierele de tip .htacces aflate in / si in subdirectoarele acestuia cu exceptia directorului /var/www/html/vasilica ( si a subdirectoarelor acestuia)

Andreea

"Rome wasn't built in a day" !
  • | 120 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign