Mercurial (hg) mit Active Directory

15

Kann ich Mercurial so einrichten, dass Benutzer in Active Directory authentifiziert werden? In meinem Fall kann hg unter Windows, Linux oder FreeBSD ausgeführt werden, ich muss jedoch AD-Benutzer verwenden.

Hinweis: Wenn es möglich ist, verweisen Sie mich bitte auf ein Tutorial.

Zote
quelle

Antworten:

11

Nun, ich habe mit diesem Tutorial angefangen .

Nachdem ich fertig bin, habe ich die folgenden zusätzlichen Änderungen am Server vorgenommen (Windows 2008):

  • Konfigurierter IIS zur Verwendung von SSL;
  • Deaktivierte anonyme Authentifizierung für die Site.
  • Standard- und Windows-Authentifizierung für die Site aktiviert;
  • Konfigurierte NTFS-Berechtigungen für den Repository-Ordner.

Außerdem müssen Sie die folgenden Zeilen zur Repository- .hg\hgrcDatei hinzufügen :

Auf der Clientseite musste ich Benutzername und Passwort explizit angeben.

[web]
allow_push = *
Regent
quelle
5

Wenn Sie für einige integrierte System suchen, die auf Windows, Unix arbeiten können, und beglaubigen zu AD / LDAP ausprobieren RhodeCode http://rhodecode.com Es ist eine Art lokale Instanz von bitbucket / GitHub , die Repositorys dient. Es wird mit einem Berechtigungssystem und einfacher Benutzerverwaltung, Codeüberprüfung usw. geliefert.

Marcinkuzminski
quelle
Yay für RhodeCode! :-)
Martin Geisler
4

Vor ein paar Monaten habe ich einen vierteiligen Blog-Beitrag geschrieben, mit dem Sie Active Directory / IIS zum Hosten des Mercurial-Webservers verwenden können. Es funktioniert ein Vergnügen:

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

Es führt Sie durch:

  • Einrichten von Mercurial in IIS
  • Konfigurieren der ISAPI-Erweiterungen für Python
  • ISAPI umschreiben, um hässliche URLs zu verbergen
  • Konfiguration von Sicherheitsrechten mit Active Directory
  • Anpassung der Web-Benutzeroberfläche
BenAlabaster
quelle
+1, großartige Blogposts. Wir testen Mercurial für unsere Windows- und Linux-Projekte. Besteht die Möglichkeit, dass Sie dieses Handbuch für IIS 7.5 aktualisieren?
Jscott
Ich werde es sein, sobald ich mit dem Upgrade meines Servers fertig bin.
BenAlabaster
3

Ben hat Ihnen bereits eine gute Anleitung zum Einrichten von Mercurial auf IIS mit AD gegeben.

Ich möchte nur hinzufügen, dass das wichtigste, was Sie wissen müssen, ist, dass das in Mercurial integrierte (schnelle) CGI-Skript keine Benutzer authentifiziert . Das von uns bereitgestellte CGI-Skript benötigt einen Front-End-Webserver für die Authentifizierung. Sie müssen Apache, IIS, nginx usw. für die Authentifizierung einrichten, bevor sie das Skript aufrufen. (Sie können jedoch den hervorragenden RhodeCode verwenden, wenn Sie ein Bitbucket-ähnliches System mit LDAP-Unterstützung möchten, das Sie auch an AD anschließen können.)

Diese Trennung von Bedenken macht Mercurial sehr flexibel: Wenn Sie eine Active Directory-Authentifizierung wünschen, verwenden Sie einfach das Standard-Plugin für Ihren Webserver, um dies zu tun. Viele Sites werden dieses Setup bereits haben und Mercurial wird "einfach funktionieren" :-)

Mercurial überprüft also niemals Passwörter - den Authentifizierungsteil. Es kann jedoch eine Autorisierung durchführen , dh, es kann Benutzern das Drücken oder Ziehen usw. erlauben oder verbieten. Dies erfolgt auf der Grundlage des in der Standard- REMOTE_USERCGI-Variablen gespeicherten Benutzernamens . Es ist Sache des Webservers, diese Variable zu setzen, nachdem er den entfernten Benutzer authentifiziert hat.

In Mercurial wird der Benutzername mit den Listen allow_pushund allow_readim [web]Abschnitt verglichen, um festzustellen, ob der Benutzer das betreffende Repository pushen oder ziehen / klonen darf. Dies kann natürlich pro Repository konfiguriert werden, indem die .hg\hgrcDateien in jedem Repository bearbeitet werden.

Martin Geisler
quelle