fragen stichworte

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

Die SVN-Anmerkungsfunktion ist sehr leistungsfähig und ermöglicht es Ihnen, schnell herauszufinden, wer in einer bestimmten Codezeile nach einer bestimmten Funktion suchen soll. Diese Funktion ist etwas eingeschränkter (aber immer noch nützlich), wenn Benutzer über http auf SVN zugreifen. Es werden keine Anmeldeinformationen auf diese Weise ausgetauscht, sodass in der Anmerkung kein Name für eine Zeile angezeigt wird, die von einem Entwickler geändert wurde, der mit http eine Änderung festschreibt.

Die Frage ist: Gibt es eine Möglichkeit für einen Entwickler, Anmeldeinformationen irgendeiner Art an SVN auf dem Server zu übergeben, um sein 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 und ist nicht öffentlich. Tipps für https sind ebenfalls willkommen.

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

antworten

Da Sie SVN über Apache ausführen, können Sie die integrierten Authentifizierungsmethoden von Apache nutzen, um Zugriffs-/Änderungsänderungen an Ihrem Repository zu steuern. Das folgende Beispiel funktioniert mit einem htaccess-style-Setup:

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.

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 können eine detaillierte Verwaltung 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-Verzeichnisserver zur Hand haben, können Sie ihn anstelle von AuthUserFile für die Apache-Authentifizierung verwenden.

Kurze Antwort: mod_authz_svn

Sie können etwas über Apache + svn + mod_autz_svn und etwas mehr in meinen Folien erfahren, die der internationalen PHP-Konferenz '09 vorgestellt werden, die unter http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf

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

Sie können den Linux-Server mit der Domäne verbinden, indem Sie diesem Artikel folgen.

Von dort aus konfigurieren Sie Apache, um sich mithilfe von Kerberos beim AD zu authentifizieren. Installieren Sie zuerst mod_auth_kerb, und verbinden Sie dann apache2 zur Authentifizierung mit Kerberos. Siehe die -Dokumentation von Microsoft. Stellen Sie sicher, dass Sie SSL implementieren, wenn Sie sich überhaupt um die Sicherheit zwischen Client und Server sorgen.

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

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