Einrichten eines SVN-Servers für mehrere Benutzer über http

Einrichten eines SVN-Servers für mehrere Benutzer über http

Die SVN-Annotationsfunktion ist sehr leistungsstark und ermöglicht eine schnelle Suche nach einer bestimmten Funktion in einer bestimmten Codezeile. Diese Funktion ist etwas eingeschränkter (aber immer noch nützlich), wenn Benutzer über http auf SVN zugreifen. Auf diese Weise werden keine Anmeldeinformationen ausgetauscht, sodass die Annotation keinen Namen für eine Zeile anzeigt, die von einem Entwickler geändert wurde, der über http eine Änderung festschreibt.

Die Frage ist, ob es für einen Entwickler eine Möglichkeit gibt, Anmeldeinformationen irgendeiner Art an SVN auf dem Server weiterzugeben, um seinen Commit eindeutig zu identifizieren. In dieser Umgebung ist lediglich das Vorhandensein einer ID erforderlich. Alternative Methoden wie SVN+SSH und Dateiprotokolle sind nicht verfügbar. Schließlich befindet sich dieser Server in einem internen LAN, nicht in einem öffentlichen. Tipps für https sind ebenfalls willkommen.

Der SVN-Server läuft unter Linux mit Apache2.

Antwort1

in der Apache-Konfiguration:

<Location /svn>
    DAV svn
    SVNPath /mnt/big/svn
    AuthType Basic
    AuthName "SVN Server"
    AuthUserFile /etc/apache2/svn.pass
    Require valid-user
    AuthzSVNAccessFile /etc/apache2/svn_authz

und /etc/apache2/svn_authz kann eine detaillierte Verwaltung darüber enthalten, wer auf was zugreifen kann:

[groups]
ops=user1,user2
it=user2,user3

[/]
* = rw

[/ops]
* =
@ops=rw

[/ro]
* = 
@ops = r
@it = r
user4 = rw

Wenn Sie einen LDAP-/Active Directory-Server zur Hand haben, können Sie diesen anstelle von AuthUserFile für die Apache-Authentifizierung verwenden.

Antwort2

Da Sie SVN über Apache ausführen, können Sie die integrierten Authentifizierungsmethoden von Apache nutzen, um den Zugriff auf Ihr Repository zu kontrollieren bzw. Änderungen daran zu verfolgen. Das folgende Beispiel funktioniert mit einem Setup im htaccess-Stil:

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user

Sie können dies in einer htaccess-Datei oder in der VirtualHost-Konfigurationsdatei konfigurieren.

Antwort3

Kurze Antwort:mod_authz_svn

Ein wenig über Apache + SVN + Mod_autz_svn und mehr erfahren Sie in meinen Folien zur International PHP Conference '09, verfügbar unterhttp://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf

Antwort4

Diese Antwort setzt voraus, dass Ihre Entwickler Windows verwenden und Sie über einen Active Directory-Domänencontroller verfügen.

Sie können den Linux-SVN-Server der Domäne hinzufügen, indem Sie diesen Befehl befolgen.Artikel.

Von dort aus konfigurieren Sie Apache so, dass es sich mit Kerberos gegenüber dem AD authentifiziert. Installieren Sie zunächstmod_auth_kerb, dann verbinden Sie Apache2 mit Kerberos zur Authentifizierung. Siehe MicrosoftsDokumentationStellen Sie sicher, dass Sie SSL implementieren, wenn Sie sich über die Sicherheit zwischen Client und Server Sorgen machen.

Wenn Sie fertig sind, können sich Benutzer mit ihren Windows-Kennwörtern anmelden und die Aktivitäten werden ihrem Benutzer zugewiesen.

Leider kann ich Ihnen derzeit keine spezifischen Konfigurationsdetails geben, da ich nicht im Büro bin und keinen Zugriff auf unseren SVN-Server habe.

verwandte Informationen