Zeige mehr…

Crowd Dokumentation - Crowd in Subversion integrieren

Der Crowd Apache/Subversion Konnektor wird weiterhin verfügbar bleiben, aber er wird nach dem 31. Dezember 2014 nicht mehr von Atlassian supportet.

Diese Seite bietet Ihnen eine Anleitung für die Verwendung von Subversions Autorisierungsmodulen, um Crowd in Subversion zu integrieren.

Wenn Sie bereits vor dem 31. Dezember 2014 den Crowd Apache/Subversion Konnektor verwendeten und Probleme feststellen konnten, empfehlen wir Ihnen den Wechsel zu Subversions Authentifizierungsmodul: Alternatives Setup für Crowd Apache/Subversion Konnektor Benutzer.

Wenn Sie Crowd in Apache integriert haben, dann können Sie mit Crowd ein Subversion-Repository Passwort-schützen und eine feinabgestimmte Zugriffskontrolle nach Gruppen oder Benutzer zur Verfügung stellen.

Die folgenden Features werden unterstützt:

Schritt 1: Integration von Crowd in Apache

Zuerst müssen Sie Crowd in Apache integrieren. Bitte befolgen Sie den Instruktionen auf der Dokumentation über die Integration von Crowd in Apache.

Beachten Sie, dass Sie Subversion nicht als Applikation in Crowd definieren müssen. Subversion und Apache werden beide dieselbe Crowd-Applikation verwenden.

Schritt 2: Konfiguration der Crowd-Authentifizierung für Subversion

Wenn Sie Apache für die Verwaltung des Zugriffs auf ein Subversion-Repository (Instruktionen auf Englisch) und Crowd für das Verwalten der Apache Authentifizierung (Instruktionen) verwenden, dann können Sie dieselbe Konfigurationsmethode für die Delegierung der Authentifizierung der Subversion-Benutzer an Crowd benutzen.

Beispiel:

>Location /svn< AuthName "Atlassian Crowd" AuthType Basic AuthBasicProvider crowd CrowdAppName myappname CrowdAppPassword mypassword CrowdURL http://localhost:8095/crowd/ CrowdCreateSSO off # Improves performance when using Subversion clients that don't store cookies DAV svn # Set this to the path to your repository SVNPath /var/lib/svn # The following three lines allow anonymous read, but make # committers authenticate themselves. >LimitExcept GET PROPFIND OPTIONS REPORT< Require valid-user >/LimitExcept< >/Location<

Wenn Ihre Subversion Clients keine Cookies speichern, erreichen Sie durch das Deaktivieren des Single Sign-Ons, mit der "CrodCreateSSO off" Direktive, eine bessere Performance. Damit wird vermieden, dass bei jeder Anfrage an Subversion eine Anfrage an Crowd gestellt wird.

Sie werden auch Ihre Apache Konfigurationsdatei editieren müssen, um Subversions Autorisierungsmodul "mod_authz_svn" zu laden.

LoadModule authz_svn_module modules/mod_authz_svn.so

Beachten Sie, dass Sie Apache erst neustarten müssen, bevor jegliche Änderungen an den Konfigurationsdateien wirksam werden.

Schritt 3: Konfiguration der Crowd Autorisierung für Subversion

Um den Zugriff auf das Subversion-Repository auf bestimmte Gruppen und/oder Benutzer einzuschränken, können Sie die "Require group" und "Require user" Direktiven hinzufügen, so wie es auf der Seite über das Integrieren von Crowd in Apache beschrieben ist.

Für feinere Zugriffseinschränkungen können Sie die "AuthzSVNAccessFile" Direktive für die Definition von Pfad-basierten Zugriffsregeln benutzen.

Beispiel:

>Location /svn< AuthName "Atlassian Crowd" AuthType Basic AuthBasicProvider crowd CrowdAppName myappname CrowdAppPassword mypassword CrowdURL http://localhost:8095/crowd/ CrowdCreateSSO off # Improves performance when using Subversion clients that don't store cookies DAV svn # Set this to the path to your repository SVNPath /var/lib/svn AuthzSVNAccessFile /etc/apache2/dav_svn.authz Require valid-user >/Location<

Die "AuthzSVNAccessFile" Einstellung lässt Sie eine Datei definieren, in der Sie den Zugriff der Gruppen und Benutzer auf Verzeichnisebene definieren können.

Hier ist ein kurzes Beispiel:

[groups] # Groups referred to in other sections must be listed here, but group membership is obtained from Crowd. bazdevelopers = foodevelopers = # Everyone has read access to the repository # (unless modified below). [/] * = r # Members of the bazdevelopers group can # read and write to the BazWord project [/BazWord] @bazdevelopers = rw # Members of the foodevelopers group can read and write # to the FooCalc project [/FooCalc] @foodevelopers = rw # Members of foodevelopers can read the branches # directory but only user juliag (the release manager) # can write to this path [/FooCalc/branches] juliag = rw @foodevelopers = r # peterc is a contractor, so he's denied all access to the statistics # module (which is full of trade secrets). [/FooCalc/trunk/statistics] peterc =

Hinweise:

[groups] developers = [public:/] * = r @developers = rw [public:/community] * = rw [private:/] @developers = rw

Vermischen des authentifizierten und anonymen Zugriffs

Eine häufige Anforderung für den Subversion-Zugriff ist es eine Kombination des anonymen (bei dem kein Benutzername und Passwort erforderlich ist) und des authentifizierten Zugriffs. Zum Beispiel gibt es viele Administratoren, die anonymen Benutzern den Lesezugriff auf bestimmte Repository-Verzeichnisse geben möchten, aber nur authentifizierten Benutzern den Lese- oder Schreibzugriff auf empfindlichere Bereiche geben möchten. Um den anonymen Zugriff zu aktivieren fügen Sie die folgende Zeile zu der Apache Konfigurationsdatei hinzu:

AuthzSVNAccessFile /etc/apache2/dav_svn.authz AuthzSVNNoAuthWhenAnonymousAllowed On Satisfy Any Require valid-user

Wenn der anonyme Zugriff, wie oben gezeigt, aktiviert ist, dann wird Apache kein Password für jeden Teil des Repositorys benötigen, das mit dem '*' Benutzer in der AuthzSVNAccessFile Datei übereinstimmt. Wenn Sie um Beispiel anonymen Benutzern den Lesezugriff auf das Meiste eines Repositorys geben möchten, aber die Authentifizierung für einen privaten Bereich benötigen, dann würde die "AuthzSVNAccessFile" Datei wie folgt aussehen:

[groups] developers= # login not required to read, only members of the 'developers' group can check in changes [/] * = r @developers = rw # anonymous access denied to /private directory [/private] * = @developers = rw

Sehen Sie sich auch dieses Beispiel (auf Englisch) in der Subversion Dokumentation an.

Für eine detaillierte Beschreibung des "AuthzSVNAccessFile" Dateiformats, sehen Sie sich bitte die Subversion Dokumentation (auf Englisch) an.

Zusätzliche Konfigurationsoptionen

Womöglich möchten Sie Ihre Konfiguration mit einigen weiteren, optionalen Befehlen anpassen. Lesen Sie dazu die Subversion Dokumentation (auf Englisch).

Schritt 4: Die Gruppenzugehörigkeiten aus Crowd beziehen

Als nächstes müssen Sie die "AuthzSVNAccessFile" Datei nehmen und sie mit den Gruppenzugehörigkeiten aus Crowd erweitern. Das wird mit einem Python-Skript gemacht. Das Skript nimmt Ihre Definitionen in Bezug auf die Crowd-Gruppen, erweitert diese und generiert die access-file-expanded.authz Datei (die die Liste mit den Benutzern und Gruppen aus Ihrer Crowd-Instanz beinhaltet).

  1. Laden Sie das Python-Skript von Bitbucket herunter.
  2. Editieren Sie die "AuthzSVNAccessFile" Einstellungen in der httpd.config Datei, um den Ort anzugeben, an dem die "access-file-expanded.authz" Datei liegen wird (das ist die Datei, die von dem Skript generiert/aktualisiert wird).
  3. Kopieren Sie Ihre crowd.properties Datei zu Apaches Config-Verzeichnis.
  4. Erstellen Sie folgendes Skript:

    if generate-authz-svn-access-file.py --config crowd.properties --check-event-token access-file-expanded.authz; then : # Do nothing; file is current else generate-authz-svn-access-file.py --config crowd.properties access-file-template.authz <access-file-expanded.authz.tmp && mv access-file-expanded.authz.tmp access-file-expanded.authz fi

    Passen Sie die Pfade des obigen Beispiels an, damit es zu Ihrer Umgebung passt.

  5. Starten Sie das Skript und überprüfen Sie, ob die access-file-expanded.authz Datei aktualisiert wurde.
  6. Erstellen Sie eine terminierte Aufgabe mithilfe von Cron oder einer anderen Alternative, um das Skript regelmäßig, z. B. stündlich, laufen zu lassen.

Hinweise

Alternatives Setup für existierende Crowd Apache/Subversion Konnektor Benutzer

Der Crowd Apache/Subversion Konnektor wird ab dem 31. Dezember 2014 nicht mehr von Atlassian supportet.

Wenn Sie Probleme mit Ihrem existierenden Setup feststellen mussten, dann empfehlen wir Ihnen den Wechsel zu einer Alternative, indem Sie Subversions Authentifizierungsmodule dazu verwenden eine "AuthzSVNAccessFile" Datei zu generieren und sie mit den Gruppenzugehörigkeiten von Crowd befüllen.

Ein Python-Skript nimmt Ihre Definitionen in Bezug auf die Crowd-Gruppen aus der "AuthzSVNAccessFile" Datei, erweitert diese und generiert die "access-file-expanded.authz" Datei, mit der Liste der Benutzer und Gruppen aus Ihrer Crowd-Instanz. Sie können dann die Ausführung dieses Skripts automatisieren, sodass die Mapping-Dateien, die von Subversion verwendet werden, immer auf dem aktuellsten Stand bleiben.

  1. Laden Sie das Python-Skript von Bitbucket herunter.
  2. Bearbeiten Sie Ihre Apache "httpd.conf" Konfigurationsdatei, um "mod_authz_svn" zu laden (anstatt des Atlassian Crowd Apache Subversion Konnektors).

    LoadModule authz_svn_module modules/mod_authz_svn.so
  3. Editieren Sie die "AuthzSVNAccessFile" Einstellung in der Apache "httpd.config" Datei, um zu definieren wo die "access-file-expanded.authz" Datei liegen wird (das ist die Datei, die vom Skript generiert/aktualisiert wird).
  4. Kopieren Sie Ihre "crowd.properties" Datei zu Apaches Config-Verzeichnis.
  5. Erstellen Sie folgendes Skript:

    if generate-authz-svn-access-file.py --config crowd.properties --check-event-token access-file-expanded.authz; then : # Do nothing; file is current else generate-authz-svn-access-file.py --config crowd.properties access-file-template.authz <access-file-expanded.authz.tmp && mv access-file-expanded.authz.tmp access-file-expanded.authz fi

    Editieren Sie die Pfade im obigen Beispiel, damit sie zu Ihrer Umgebung passen.

  6. Starten Sie das Skript und überprüfen Sie, ob die "access-file-expanded.authz" Datei aktualisiert wurde.
  7. Erstellen Sie eine terminierte Aufgabe mithilfe von Cron oder einer anderen Alternative, um das Skript regelmäßig, z. B. stündlich, laufen zu lassen.

Crowd Dokumentation Übersicht:

Die Seiten können in der Mobilversion leider nicht aufgelistet werden.

Zurück zur Übersicht

Nächste Seite

Workshop Angebote

Zeige mehr…
Zeige mehr…