apache - SVN-path-godkendelse ved hjælp af Windows-domænegrupper

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan konfigurerer du SVN serveret af Apache på Windows, sådan at stier i et depot kan få adgangskontrol konfigureret ved hjælp af Windows domæne grupper?

Bedste reference


Efter nogle undersøgelser tror jeg, jeg har udarbejdet, hvordan man gør det ved hjælp af mod\_sspi og en række Apache Location-konfigurationsdirektiver.


<Location /svn>
    DAV svn
    SVNParentPath "D:/SvnRepos"
    SVNListParentPath On

    AuthType SSPI
    AuthName "SVN Server"
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain MYDOMAIN
    SSPIOfferBasic On
    Require group MYDOMAINPRODUCT1\_DEVS MYDOMAINPRODUCT2\_DEVS
</Location>


<Location /svn/Repo/Product1>
    AuthType SSPI
    AuthName "SVN Product1"
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain MYDOMAIN
    SSPIOfferBasic On
    Require group MYDOMAINPRODUCT1\_DEVS
</Location>


<Location /svn/Repo/Product2>
    AuthType SSPI
    AuthName "SVN Product2"
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain MYDOMAIN
    SSPIOfferBasic On
    Require group MYDOMAINPRODUCT2\_DEVS
</Location>


Ulemper ved denne tilgang er, at konfigurationen er klog, at den er lidt fornuftig, og den virker ikke for WebSVN. Den første af dem, jeg ikke bryr mig om, og den anden jeg kan se på, at fikse senere.


Et spørgsmål til alle jer Apache og SVN eksperter selv. Er denne konfiguration sikker og robust? Det ser ud til at virke ok for mig, men jeg har ikke set denne tilgang nævnt andetsteds, så jeg er lidt nervøs for at implementere den uden nogen ekspertfeedback, og vi har ingen erfarne Apache-fyre inde.


=== EDIT ===


I sidste ende besluttede jeg at oprette et separat depot for hvert projekt, der krævede specifikke adgangsrettigheder ved hjælp af en konfiguration, der lignede dette.


# Publishes repository 1 at url http://localhost/svn/Repo1 used mostly by team 1.
<Location /svn/Repo1>
    # DAV config.
    DAV svn

    # Config to publish single repository.
    SVNPath "D:/SvnRepos/Repo1"

    # Config to publish all repositories in directory.
    #SVNParentPath "D:/SvnRepos/"
    #SVNListParentPath On

    # Auth config.
    AuthName "SVN"
    AuthType SSPI
    SSPIAuth On
    SSPIOfferBasic On
    SSPIAuthoritative On

    <RequireAny>
        # Allows access to any user.
        #Require valid-sspi-user

        # Allows access to users belonging to specified domain group(s).
        Require sspi-group DOMAIN\_NAMETEAM1

        # Allows access to specified domain users.
        Require sspi-user DOMAIN\_NAMEuser1
    </RequireAny>

</Location>

# Publishes repository 2 at url http://localhost/svn/Repo2 used by several teams.
<Location /svn/Repo2>
    # DAV config.
    DAV svn

    # Config to publish single repository.
    SVNPath "D:/SvnRepos/Repo2"

    AuthName "SVN"
    AuthType SSPI
    SSPIDomain DOMAIN\_NAME
    SSPIAuth On
    SSPIOfferBasic On
    SSPIAuthoritative On

    Require sspi-group DOMAIN\_NAMETEAM1 DOMAIN\_NAMETEAM2 DOMAIN\_NAMETEAM3
</Location>


Jeg undrer mig selv om, om min oprindelige konfiguration måske har fungeret, hvis jeg havde lige fjernet det første placeringselement, der giver adgang til root/svn-mappen, er jeg sikker på, at jeg skal have testet det, men har ikke tid til at kontrollere det nu.

Andre referencer 1


Du skal konfigurere Apache til at bruge LDAP/AD til godkendelse, og du skal konfigurere path-base-autorisationen inden for SVN Repository for at definere tilladelserne i lageret. [3] [4]