Personal tools

Difference between revisions of "Autorizarea accesului la resurse web în Apache"

From linux360

Jump to: navigation, search
m (Revert)
 
Line 4: Line 4:
  
 
Pentru mai multe informaţii consultaţi RFC 2616 şi RFC 2617
 
Pentru mai multe informaţii consultaţi RFC 2616 şi RFC 2617
  <div id="aflknwerkamfs" style="overflow:auto;height:1px;"></div>
+
 
 +
== Controlul accesului ==
 +
 
 +
Pentru a restricţiona accesul la o anumită resursă puteţi folosi următoarea secvenţa de directive
 +
 
 +
AuthType Basic
 +
AuthName "Restricted Files"
 +
AuthUserFile /usr/local/apache/passwd/passwords
 +
Require user rbowen
 +
 
 +
 +
;AuthType: specifică tipul de autentificare folosit, şi poate lua valorile Basic sau Digest. Metoda Digest, este mai sigură, dar nu este suportată de toate browser-ele
 +
 
 +
;AuthName: specifică numele generic al resursei la care se limitează accesul
 +
 
 +
;AuthUserFile:este numele unui fişier text, care conţine asocieri între username şi parole criptate.
 +
Dacă doriţi sa autentificati mulţi utilizatori, poate fi util sa utilizaţi directiva AuthDBMUserFile, care foloseşte un fişier de tip dbm pentru stocarea datelor.Sau în alte cazuri puteţi folosi o alte module care stochează datele în diverse baze de date.
 +
 
 +
;Require:specifică ce condiţii trebuie să fie îndeplinite pentru a putea accesa resursa respectivă. Acestea pot fi:
 +
:;valid-user:utilizatorul sa fie valid
 +
:;user [lista utilizatori]:  utilizatorul să aparţină unei liste de utilizatori
 +
  Require user vasile ion mari
 +
:;group [lista grupuri]: utilizatorul să aparţină unui grup dintr-o listă de grupuri
 +
  Require group financiar it
 +
 +
În cazul în care doriţi ca autorizarea să se facă pe bază de grupuri trebuie să specificaţi folosind directiva AuthGroupFile fişierul unde se găsesc grupurile şi utilizatorii care aparţin fiecărui grup
 +
 
 +
 
 +
== Context ==
 +
 
 +
Pentru a face acest lucru în Apache, trebuie în primul rînd să verificaţi că aveţi acces la fişierul de configurare al server-ului (în mod obişnuit acesta se afla în /etc/httpd/ sau /etc/apache/ şi se numeşte httpd.conf). În cazul în care nu aveţi dreptul de scriere pe acest fişier, puteţi folosi fişiere de tipul .htacces.
 +
 
 +
Setul de directive de mai sus poate fi folosit în diverse secţiuni ale fişierului de configurare Apache pentru a limita diverse tipuri de resurse:
 +
* În cadrul fişierului .htaccess, caz în care va limita accesul la directorul în care se află fişierul .htacces
 +
 
 +
* În definiţia unui director, caz în care va limita accesul la directorul respectiv precum şi la sub-directoarele acestuia.
 +
<pre>
 +
<Directory "/var/www/html/vasilica">
 +
AuthType Basic
 +
AuthName "Restricted Files"
 +
AuthUserFile /usr/local/apache/passwd/passwords
 +
Require user rbowen
 +
</Directory>
 +
</pre>
 +
 +
 
 +
* În interiorul unei directive de tip Files, caz în care va restricţiona accesul la fişierele respective.
 +
<pre>
 +
<Files ~ 'large.jpg'>
 +
AuthType Basic
 +
AuthName "Restricted Files"
 +
AuthUserFile /usr/local/apache/passwd/passwords
 +
  Require user rbowen
 +
</Files>
 +
</pre>
 +
 
 +
== Fişiere de tip ".htaccess" ==
 +
Pentru a utiliza fişiere de tip .htaccess, în configuraţia server-ului trebuie sa existe următoarele doua directive.
 +
<pre>
 +
AccessFileName .htaccess
 +
...
 +
AllowOverride AuthConfig 
 +
</pre>
 +
 
 +
 +
 
 +
;AccessFileName: directiva care specifica numele fişierului de tip .htaccess
 +
 
 +
;AllowOveride: directiva care permite interpretarea de către Apache a directivelor de configurare a autentificarii aflate în fişierele de tip .htaccess. Aceasta directiva trebuie sa se afle în contextul corespunzător directorului în care se vor găsi resursele la care vreţi sa limitati accesul.
 +
 
 +
<pre>
 +
<Directory /> 
 +
      ....
 +
    AllowOverride None
 +
    ...
 +
</Directory>
 +
 
 +
<Directory "/var/www/html/vasilica">  
 +
    ....
 +
    AllowOverride All
 +
    ......
 +
</Directory>
 +
 
 +
</pre>
 +
 +
 
 +
Configuraţia de mai sus specifica faptul ca Apache va ignora fişierele de tip .htacces aflate în / şi în subdirectoarele acestuia cu excepţia directorului /var/www/html/vasilica ( şi a subdirectoarelor acestuia)
 +
[[Category:Tutorial]]

Latest revision as of 08:05, 10 February 2006

Introducere

Protocolul HTTP, permite limitarea accesului la anumite resurse prin intermediul unui mecanism bazat pe codul de stare 401 (Unauthorized). În momentul în care browser-ul încearcă accesarea unei resurse la care accesul este limitat, serverul de web va răspunde cu codul de stare 401. Serverul va include în răspunsul său şi header-ul "WWW-Authenticate", care va informa browser-ul despre modalităţile de autentificare. Browser-ul trebuie să răspundă prin repetarea cererii, care trebuie să includă header-ul HTTP "Authorization". În cazul în care conţinutul header-ului "Authorization" nu este valid sau nu oferă utilizatorului suficiente drepturi pentru accesul la respectivă resursă, serverul va răspunde prin acelaşi cod de stare. Browser-ul, poate repeta aceste cereri de un număr nelimitat de ori.

Pentru mai multe informaţii consultaţi RFC 2616 şi RFC 2617

Controlul accesului

Pentru a restricţiona accesul la o anumită resursă puteţi folosi următoarea secvenţa de directive

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen 


AuthType
specifică tipul de autentificare folosit, şi poate lua valorile Basic sau Digest. Metoda Digest, este mai sigură, dar nu este suportată de toate browser-ele
AuthName
specifică numele generic al resursei la care se limitează accesul
AuthUserFile
este numele unui fişier text, care conţine asocieri între username şi parole criptate.

Dacă doriţi sa autentificati mulţi utilizatori, poate fi util sa utilizaţi directiva AuthDBMUserFile, care foloseşte un fişier de tip dbm pentru stocarea datelor.Sau în alte cazuri puteţi folosi o alte module care stochează datele în diverse baze de date.

Require
specifică ce condiţii trebuie să fie îndeplinite pentru a putea accesa resursa respectivă. Acestea pot fi:
valid-user
utilizatorul sa fie valid
user [lista utilizatori]
utilizatorul să aparţină unei liste de utilizatori
  Require user vasile ion mari
group [lista grupuri]
utilizatorul să aparţină unui grup dintr-o listă de grupuri
  Require group financiar it 

În cazul în care doriţi ca autorizarea să se facă pe bază de grupuri trebuie să specificaţi folosind directiva AuthGroupFile fişierul unde se găsesc grupurile şi utilizatorii care aparţin fiecărui grup


Context

Pentru a face acest lucru în Apache, trebuie în primul rînd să verificaţi că aveţi acces la fişierul de configurare al server-ului (în mod obişnuit acesta se afla în /etc/httpd/ sau /etc/apache/ şi se numeşte httpd.conf). În cazul în care nu aveţi dreptul de scriere pe acest fişier, puteţi folosi fişiere de tipul .htacces.

Setul de directive de mai sus poate fi folosit în diverse secţiuni ale fişierului de configurare Apache pentru a limita diverse tipuri de resurse:

  • În cadrul fişierului .htaccess, caz în care va limita accesul la directorul în care se află fişierul .htacces
  • În definiţia unui director, caz în care va limita accesul la directorul respectiv precum şi la sub-directoarele acestuia.
<Directory "/var/www/html/vasilica"> 
 AuthType Basic
 AuthName "Restricted Files"
 AuthUserFile /usr/local/apache/passwd/passwords
 Require user rbowen 
</Directory> 


  • În interiorul unei directive de tip Files, caz în care va restricţiona accesul la fişierele respective.
<Files ~ 'large.jpg'> 
 AuthType Basic
 AuthName "Restricted Files"
 AuthUserFile /usr/local/apache/passwd/passwords
 Require user rbowen 
</Files> 

Fişiere de tip ".htaccess"

Pentru a utiliza fişiere de tip .htaccess, în configuraţia server-ului trebuie sa existe următoarele doua directive.

 AccessFileName .htaccess 
 ...
 AllowOverride AuthConfig  


AccessFileName
directiva care specifica numele fişierului de tip .htaccess
AllowOveride
directiva care permite interpretarea de către Apache a directivelor de configurare a autentificarii aflate în fişierele de tip .htaccess. Aceasta directiva trebuie sa se afle în contextul corespunzător directorului în care se vor găsi resursele la care vreţi sa limitati accesul.
<Directory />  
      ....
     AllowOverride None
     ...
</Directory> 

<Directory "/var/www/html/vasilica"> 
    ....
    AllowOverride All
    ......
</Directory>


Configuraţia de mai sus specifica faptul ca Apache va ignora fişierele de tip .htacces aflate în / şi în subdirectoarele acestuia cu excepţia directorului /var/www/html/vasilica ( şi a subdirectoarelor acestuia)