Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Repository multipli e autenticazione

Configurare un unico host per tutti i repository e implementare un meccanismo di autenticazione HTTP
Configurare un unico host per tutti i repository e implementare un meccanismo di autenticazione HTTP
Link copiato negli appunti

Per creare un unico host da usare per tutti i repository è possibile specificare la cartella superiore come DocumentRoot, e poi utilizzare il parametro SVNParentPath al posto di SVNPath. Procediamo con la modifica:

  1. Apriamo il file /etc/apache2/sites-available/svn
  2. Modifichiamo il parametro DocumentRoot dandogli il valore /var/svn/
  3. Sostituiamo la riga
    SVNPath /var/svn/guidasvn
    con
    SVNParentPath /var/svn
  4. Salviamo e chiudiamo il file
  5. Ricarichiamo Apache

In questo modo diciamo ad Apache che nella cartella in questione saranno presenti diversi repository, per cui ora l'accesso a ciascuno di essi richiede che aggiungiamo all'url anche il nome del repository. Nel nostro caso utilizziamo:

http://svn.vd-devel/repos/guidasvn

Saremo in grado di visualizzare nuovamente il contenuto attuale del repository (ovvero il repository vuoto).

A questo punto della configurazione, il contenuto del repository è liberamente disponibile a chiunque abbia accesso al server Web. Possiamo comunque ridurre gli accessi grazie ad un meccanismo di autenticazione.

Autenticazione HTTP

Non è oggetto di questa guida spiegare i dettagli tecnici dell'autenticazione HTTP implementata da Apache. È comunque possibile ricavare informazioni al riguardo sulla documentazione ufficiale.

Iniziamo invece direttamente dal il comando necessario per creare un file di autenticazione:

htpasswd -c /etc/svn-htpasswd francesco

Nei parametri da passare inseriamo il nome di un file che conterrà l'elenco di coppie username e password, e l'utente per cui sto creando o modificando la password. L'opzione -c specifica la creazione del file, quindi va usata solo per il primo utente, mentre per i successivi basterà:

htpasswd /etc/svn-htpasswd <nomeutente>

Ora bisogna segnalare ad Apache che l'elenco di account da usare per gestire l'accesso al nostro sito è contenuto nel file appena creato. Per farlo modifichiamo il file del virtual host (/etc/apache2/sites-available/svn) e aggiungiamo le righe necessarie:

1  <VirtualHost *>
2  LoadModule dav_svn_module modules/mod_dav_svn.so
3  ServerName svn.vd-devel
4  DocumentRoot /var/svn/
5  <Location /repos>
6  DAV svn
7  SVNParentPath	/var/svn
8  Require valid-user
9  AuthType Basic
10 AuthName "Inserisci i dati per l'accesso al repository"
11 AuthUserFile /etc/svn-htpasswd
12 </Location>
13 </VirtualHost>

Le righe dalla 8 alla 11 indicano ad Apache che bisogna essere dei valid-user (cioè bisogna autenticarsi) per accedere al sito, e forniscono i parametri per verificare l'autenticazione.

Se ricarichiamo Apache e proviamo nuovamente ad accedere via browser, appare la una mascherina intitolata "Inserisci i dati per l'accesso al repository". Immettendo la corretta combinazione di username e password – che abbiamo definito prima tramite il comando htpasswd – possiamo visualizzare il contenuto del repository, altrimenti saremo tenuti fuori.

Questo è solo il primo, più semplice livello di autenticazione e non garantisce una sicurezza elevatissima, soprattutto visto che le password vengono praticamente passate in chiaro via rete.

Esiste la possibilità di stringere le maglie, ad esempio utilizzando AuthType Digest anziché Basic, che evita appunto il passaggio delle password, o ancora meglio utilizzando un certificato SSL per criptare tutto il traffico dal client al server. Sono opzioni che riguardano competenze specifiche di Apache per cui, anche in questo caso, non approfondiremo oltre in questa guida.

Ti consigliamo anche