Dieser Artikel dreht sich um Authentifizierung von Subversion bzw. Apache2.4 gegen Active Directory und einem AuthUserFile Fallback.
Will ein Benutzer sich anmelden wird zuerst der Active Directory nach dem Benutzer durchsucht. Ist dieser auch noch in der passenden Gruppe wird ihm Zugriff gewährt. Ist dies nicht der Fall, wird in der AuthUserFile nach dem Benutzer gesucht. Ist dieser dort mit passendem Passwort vorhanden, wird der Zugriff gewährt.
Apache kommuniziert über LDAP mit dem Active Directory. Dafür benötigt Apache das Modul LDAP, dieses wird mit folgendem Befehl aktiviert:
1 |
a2enmod ldap |
Nun wird für jedes SVN Repository eine Konfigurationsdatei in dem Ordner /etc/apache2/conf-available/ angelegt:
1 |
nano /etc/apache2/conf-available/svn_RepoName.conf |
Der Inhalt dieser Datei legt nun alle Umstände fest: Repository, Repository-URL sowie alle Möglichkeiten der Authentifizierung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<Location /RepoName> # Uncomment following line to debug # LogLevel info trace5 # This Location is an SVN Repo DAV svn SVNPath /path/to/svn/RepoName AuthName "AD/LDAP Auth for Apache2.4" # Check LDAP first, then AuthUserFile AuthBasicProvider ldap file AuthType Basic # Your LDAP URL with 2 Search conditions. Both need to match to grant access! # Firstly there has to be a valid User in CN=Users,DC=example,DC=tld # Secondly the User has to be Member of the Group CN=SVNGroup,OU=Groups,DC=example,DC=tld # Info: Port 3268 Speeds things up with Active Directory global catalogue. AuthLDAPURL "ldap://dc.example.tld:3268/CN=Users,DC=example,DC=tld?sAMAccountName?sub?(&(ObjectClass=*)(memberOf=CN=SVNGroup,OU=Groups,DC=example,DC=tld))" AuthLDAPBindPassword "TopSecretPasswordOfLDAPBindUser" # This file should be created with htpasswd AuthUserFile /path/to/svn/repo/conf/.htpasswd # Grant Access if User is in LDAP Group or in AuthUserFile Require valid-user </Location> |
Jetzt ist es schon fast geschafft! Die Konfiguration muss nun noch aktiviert und Apache im Anschluss neugestartet werden.
1 2 |
a2enconf svn_RepoName service apache2 restart |
Viel Spaß mit der Konfiguration!
No responses yet