12 votos

¿Cómo puedo cambiar un conjunto existente de los repositorios de Subversion para el uso de ActiveDirectory? (svnserve/windows)

Tengo un conjunto privado de los repositorios de Subversion en un Servidor Windows 2003 cuadro que a los desarrolladores acceso a través de SVNServe sobre el svn:// protocolo. Actualmente hemos estado utilizando el authz y passwd archivos para cada repositorio de control de acceso sin embargo, con el creciente número de repositorios y los desarrolladores estoy pensando en empezar a usar sus credenciales de active directory. Nos encontramos en un todo de la tienda de Microsoft y el uso de IIS en lugar de Apache en todos nuestros servidores web, por lo que prefiero seguir utilizando SVNServe si es posible.

Además de ser posible, también me preocupa acerca de cómo migrar nuestros repositorios de manera que la historia para los usuarios existentes mapa para la correcta ActiveDirectory cuentas. Tenga en cuenta también que yo no soy el administrador de la red y no soy terrible familiarizado con ActiveDirectory, así que probablemente voy a tener que ir a través de algunas otras personas para obtener los cambios realizados en ActiveDirectory, si es necesario.

¿Cuáles son mis opciones?

ACTUALIZACIÓN 1: Parece que desde el SVN documentación que mediante el uso de SASL yo debería ser capaz de obtener SVNServe autenticar mediante el uso de ActiveDirectory. Para aclarar, la respuesta que estoy buscando es cómo ir sobre la configuración de SVNServe (si es posible) para utilizar active directory para la autenticación y, a continuación, cómo modificar un repositorio existente para reasignar existente svn a los usuarios a sus ActiveDirectory dominio de inicio de sesión de cuentas.

ACTUALIZACIÓN 2: Parece que el soporte SASL en SVNServe funciona a partir de un plugin modelo y la documentación sólo se muestra como un ejemplo. Mirando a la Cyrus SASL Biblioteca se parece a un número de autenticación "mecanismos" son compatibles, pero no estoy seguro de que uno va a ser utilizado para ActiveDirectory apoyo ni puedo encontrar ninguna documentación acerca de tales asuntos.

ACTUALIZACIÓN 3: Bueno, pues parece que en orden a la comunicación con ActiveDirectory, estoy buscando a utilizar saslauthd en lugar de sasldb para el *auxprop_plugin* la propiedad. Por desgracia, parece que, según algunos puestos (posiblemente obsoletos y inexacta) saslauthd no construir en Windows y tales esfuerzos son considerados como un trabajo en progreso.

ACTUALIZACIÓN 4: El último post que he encontrado sobre este tema la hace sonar como si el buen binarios () están disponibles a través de la MIT Kerberos Biblioteca , pero suena como el autor de este post en Nabble.com todavía está teniendo problemas para conseguir que las cosas funcionen.

ACTUALIZACIÓN 5: Parece que desde el TortoiseSVN debates y también este post en el svn.haxx.se que incluso si saslgssapi.dll o lo que sea necesario binarios están disponibles y configurado en el servidor de Windows que los clientes también tendrán la misma personalización con el fin de trabajar con estos repositorios. Si esto es cierto, sólo va a ser capaz de obtener ActiveDirectory el apoyo de un cliente de windows sólo si se realizan cambios en estos clientes, tales como TortoiseSVN y CollabNet que la generación de los archivos binarios cliente para apoyar tales esquemas de autenticación. Aunque eso es lo que estos puestos a sugerir, esto es contradictorio de lo que originalmente se deduce de la lectura en la que se SASL compatible no requiere cambios en el cliente sino sólo que el servidor de instalación para controlar el mecanismo de autenticación. Después de leer un poco más detenidamente en el documento sobre Cyrus SASL en la Subversión de la sección 5 se establece que "1.5+ clientes con Cyrus SASL apoyo será capaz de autenticar contra el 1,5+ servidores con SASL habilitado, siempre que al menos uno de los mecanismos admitidos por el servidor también es apoyado por el cliente." Tan claramente GSSAPI de apoyo (que entiendo que es necesario para Active Directory) debe estar disponible en el cliente y el servidor.

Tengo que decir, estoy aprendiendo mucho acerca de las interioridades de cómo la Subversión controla la autenticación de lo que yo quería. Y por desgracia yo estaba simplemente en busca de una respuesta acerca de si puedo tener la autenticación de Active Directory de apoyo cuando se utiliza SVNServe en un servidor de Windows y acceder a este desde los clientes Windows. De acuerdo a la documentación oficial parece que esto es posible, sin embargo se puede ver que la configuración no es trivial si aún es posible.

ACTUALIZACIÓN: 6: Puesto que el desarrollo de la Subversión 1.7 está terminando, nadie podría agregar nada acerca de si la Subversión 1.7 va a mejorar la situación de conseguir SVNServe autenticar mediante el uso de Active Directory?

5voto

gbjbaanb Puntos 3338

Como ya se ha mencionado, VisualSVN Server es la herramienta que desee. Su todo-en-un paquete para Windows que usa Apache dentro de él - usted nunca sabrá a menos que usted se fue a hurgar en los archivos dll que se instala sin embargo, para todos es un servicio de Windows que tiene un complemento de mmc para administrar. Usted puede cambiar el puerto en el que se ejecuta en si ya tienes el puerto 80 tomado.

Entiendo soporte sasl a través de svnserve se está trabajando en el momento.

1voto

Steve Mould Puntos 141

estoy usando el apache con svn se ejecuta en linux debian autorizar againsta servidor de directorio activo. los clientes se conectan al repositorio a través de protocolo http. si esta configuración es aceptable para usted - seguir leyendo.

esto también se debe trabajar bajo apache para windows, pero nunca lo he intentado. lo que sigue es debian específico, pero debería funcionar igualmente bajo windows / otras distribuciones; usted no va a perder su svn historia mientras la migración...

instalar el software necesario:

apt-get install libapache2-svn subversion apache2

en la configuración de apache vhost [ enlaces simbólicos a ellos se puede encontrar en /etc/apache2/sites-enabled ]. dentro de VirtualHost agregar:

<Location /svn>
        DAV svn
        #change this to actual path
        SVNPath /full/path/to/your/current/svn/directory

        AuthType Basic
        AuthName "SVN Server"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative Off

        # provide here credentials for existing domain user. 
        # in my case domain is called domainName and user - user
        AuthLDAPBindDN "domainName\user"
        AuthLDAPBindPassword usersPassword
        # put here ip of the domain controler and full path to OU containing accounts
        AuthLDAPURL ldap://10.11.22.33:389/ou=Users,dc=domainName,dc=companyName,dc=whatever?sAMAccountName?sub?(objectClass=*)
        Require valid-user
        SVNAutoversioning on

        AuthzSVNAccessFile /etc/apache2/svn_authz
</Location>

asegúrese de que apache cargas módulo ldap:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/authnz_ldap.load
ln -s ../mods-available/ldap.load
/etc/init.d/apache2 reload

asegúrese de que apache puede modificar los archivos en el repositorio svn:

chown www-data:www-data -R /full/path/to/your/current/svn/directory

su svn_authz debe contener las reglas de decirle quién puede acceder a qué. en mi caso:

[groups]
ops=jack.brown,john.smith

[/]
* = rw

[/priv]
* =
@ops = rw

usted puede encontrar más información acerca de la sintaxis del archivo aquí.

si has llegado tan lejos - los usuarios pueden retirar a partir de http://server.address/svn/ el uso de cualquier cliente de svn [ tortuga/cmdline/visual svn ], que van a ver toda la historia y continuar la lectura/escritura.

1voto

Stefan Puntos 136

Usted podría utilizar saslNTML en lugar de GSSAPI. El saslNTML dll se instala con TSVN por defecto, y creo que también está incluido en el cliente de svn de collab.net.

hay dos opciones que usted tiene que fijar en su sasl archivo de configuración:

ntml_server

y opcional

ntml_v2

y, por supuesto, usted tiene que fijar el mech lista en el archivo de configuración para incluir NTLM.

Yo sólo he probado esta vez con TSVN cuando he implementado la totalidad de la cosa. Pero había alguien más que configurar un servidor de prueba para mí, así que no tengo idea de lo que exactamente las opciones de configuración son.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: