Configurarea autentificării în sabredav

După ce ați creat serverul WebDAV, probabil că doriți să îl asigurați. Autentificarea în WebDAV se efectuează utilizând autentificarea de bază sau digest-HTTP (RFC2617). Deși este ușor de implementat pe cont propriu, SaberDAV oferă câteva instrumente care vă pot ușura munca.







SabreDAV are un plugin care efectuează autentificarea pentru dvs. Acesta include două backends. Unul pentru stocarea intrărilor de utilizator într-un fișier, celălalt pentru stocarea acestora într-o bază de date SQLite sau MySQL. Ambele utilizează interogarea HTTP. Dacă doriți să utilizați autentificarea de bază, trebuie să creați propria clasă Backend care implementează Saber \ DAV \ Auth \ Backend \ BackendInterface.

Folosind backend-ul PDO

Backend-ul PDO poate utiliza numai bazele de date MySQL sau SQLite. Exemple de crearea de tabele puteți găsi în sursele din exemplele de director / sql:

După crearea unei instanțe a lui Saber \ DAV \ Server. activați plug-in-ul utilizând următorul cod:

Tabel SQL

Scripturile din exemplele pentru SQL creează automat un utilizator cu autentificarea de administrator și administratorul parolei. Schimbă-l!

S-ar putea să fii confuz de câmpul digesta1. Acesta stochează parola hash. Acest hash se calculează după cum urmează:

Cu ajutorul parolei și a parolei, totul este clar, dar în afară de ele, trebuie să vă aflați undeva în regiune. Este același domeniu. pe care l-ați specificat mai devreme, când creați Saber \ DAV \ Auth \ Plugin.

Dacă doriți să schimbați domeniul în plugin, toate parolele existente vor deveni nevalide, deoarece hașele lor se vor schimba.

Folosind un backend de fișiere

Backend Saber \ DAV \ Auth \ Backend \ File utilizează un fișier simplu pentru a stoca datele de conectare și parolele utilizatorilor. Formatul acestui fișier este identic cu fișierul htdigest folosit în Apache.

Dacă aveți Apache instalat, atunci cel mai probabil aveți un utilitar pentru a crea și a modifica astfel de fișiere. Puteți verifica acest lucru tastând htdigest în linia de comandă.







Dar chiar dacă htdigest nu este instalat, puteți înțelege cu ușurință acest format. Utilizatorii din acesta sunt stocați unul câte unul pe rând (separate \ n). Fiecare linie are forma:

Conectarea nu necesită explicații. Parametrul domeniului trebuie să fie același ca al doilea argument pentru constructorul Saber \ DAV \ Auth \ Plugin. și digest a1 este un hash, la fel ca în plugin-ul PDO:

Creați propriul backend pentru autentificare

Dacă doriți să adăugați digest autentificare, utilizați Sabre \ DAV \ Aut \ backend \ AbstractDigest ca o clasă părinte, și clasele Sabre \ DAV \ Aut \ backend \ fișiere și Sabre \ DAV \ Aut \ backend \ DOP ca exemple.

Dacă intenționați să implementați autentificarea HTTP de bază, utilizați Saber \ DAV \ Auth \ Backend \ AbstractBasic ca clasă parentală și implementați metoda validateUserPass.

Pentru mai multe informații despre clasele Saber \ HTTP_ *, consultați articolul RawAuthentication. Acesta oferă vechile recomandări pentru implementarea autentificării.

Configurarea serverului web

Majoritatea serverelor web care se află direct în afara casetei permit capete de autentificare, dar în unele acestea ar trebui incluse în mod explicit.

Apache + (rapid) CGI

Dacă utilizați PHP prin CGI sau FastCGI, Apache implicit nu ignoră antetele de autentificare. Puteți să le activați cu următoarea regulă mod_rewrite:

Dacă aveți deja o regulă mod_rewrite care redirecționează toate adresele URL către unul dintre fișierele serverului, trebuie să îl modificați după modelul următor:

Fiți atenți la /server.php. În schimb, trebuie, bineînțeles, să specificați fișierul corespunzător.

IIS nu acceptă automat HTTP_AUTHORIZATION. Puteți să o activați urmând Manualul PHP. Iată un citat din acest manual:

De asemenea, rețineți că, din cauza limitărilor Microsoft IIS de la PHP 4.3.3, autentificarea HTTP nu funcționează cu acest server când PHP este instalat ca CGI. Pentru a funcționa cu PHP 4.3.3+, editați configurația "Directory Security" în IIS. Faceți clic pe "Editați" și debifați toate câmpurile acestei configurații, cu excepția "Acces anonim".

Problemă cu modul de siguranță

Dacă este activat modul "sigur", PHP va adăuga automat ID-ul procesului în câmpul realm atunci când autentifică. Aceasta este o problemă pentru autentificarea digest, care utilizează domeniul pentru a determina hash-ul.

Pentru a rezolva această problemă, dezactivați modul de siguranță sau utilizați autentificarea de bază în loc de digest.

Pentru mai multe informații, consultați Ghidul PHP.

Autentificarea prin intermediul unui server web

Autentificarea se poate face chiar de către serverul web. Acest lucru poate fi util dacă doriți să utilizați metodele avansate de autentificare furnizate de modulele Apache (inclusiv LDAP, Kerberos și SASL).

Pentru acest scop, se folosește backend-ul Saber \ DAV \ Auth \ Backend \ Apache. Pentru ao folosi, adăugați plugin-ul după cum urmează:







Articole similare

Trimiteți-le prietenilor: