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
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 user vasili ion mary
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:
AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen
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)