Tengo un conjunto de repositorios privados de Subversion en un cuadro de Windows Server 2003 al que los desarrolladores acceden a través de SVNServe a través del protocolo svn: //. Actualmente hemos estado usando los archivos authz y passwd para cada repositorio para controlar el acceso, sin embargo, con el creciente número de repositorios y desarrolladores que estoy considerando cambiar para usar sus credenciales de ActiveDirectory. Corremos en una tienda de Microsoft y usamos IIS en lugar de Apache en todos nuestros servidores web, por lo que preferiría continuar usando SVNServe si es posible.
Además de ser posible, también me preocupa cómo migrar nuestros repositorios para que el historial de los usuarios existentes se asigne a las cuentas correctas de ActiveDirectory. Tenga en cuenta también que no soy el administrador de la red y que no estoy muy familiarizado con ActiveDirectory, por lo que probablemente tendré que pasar por otras personas para realizar los cambios en ActiveDirectory si es necesario.
¿Cuáles son mis opciones?
ACTUALIZACIÓN 1: De la documentación de SVN parece que al usar SASL debería poder hacer que SVNServe se autentique usando ActiveDirectory. Para aclarar, la respuesta que estoy buscando es cómo configurar SVNServe (si es posible) para usar ActiveDirectory para la autenticación y luego cómo modificar un repositorio existente para reasignar usuarios de svn existentes a sus cuentas de inicio de sesión de dominio ActiveDirectory.
ACTUALIZACIÓN 2: Parece que el soporte de SASL en SVNServe funciona fuera de un modelo de complemento y la documentación solo se muestra como un ejemplo. Al mirar la Biblioteca Cyrus SASL , parece que se admiten varios "mecanismos" de autenticación, pero no estoy seguro de cuál se utilizará para el soporte de ActiveDirectory ni puedo encontrar documentación sobre tales asuntos.
ACTUALIZACIÓN 3: Ok, bueno, parece que para comunicarme con ActiveDirectory estoy buscando usar saslauthd en lugar de sasldb para la propiedad auxprop_plugin . Desafortunadamente, parece que según algunas publicaciones (posiblemente desactualizadas e inexactas) saslauthd no se basa en Windows y tales esfuerzos se consideran un trabajo en progreso .
ACTUALIZACIÓN 4: la última publicación que he encontrado sobre este tema hace que parezca que los binarios adecuados () están disponibles a través de la Biblioteca Kerberos del MIT, pero parece que el autor de esta publicación en Nabble.com todavía tiene problemas para hacer que las cosas funcionen .
ACTUALIZACIÓN 5: Parece de las discusiones de TortoiseSVN y también esta publicación en svn.haxx.seincluso si saslgssapi.dll o cualquier binario necesario esté disponible y configurado en el servidor de Windows, los clientes también necesitarán la misma personalización para trabajar con estos repositorios. Si esto es cierto, solo podremos obtener soporte de ActiveDirectory de un cliente de Windows solo si se realizan cambios en estos clientes, como TortoiseSVN y CollabNet, compilación de los archivos binarios del cliente para admitir dichos esquemas de autenticación. Aunque eso es lo que sugieren estas publicaciones, esto es contradictorio con lo que originalmente asumí de otra lectura, ya que ser compatible con SASL no debería requerir cambios en el cliente, sino solo que el servidor esté configurado para manejar el mecanismo de autenticación. Después de leer un poco más cuidadosamente en el documento sobre Cyrus SASL en Subversionla sección 5 establece que "1.5+ clientes con soporte Cyrus SASL podrán autenticarse contra 1.5+ servidores con SASL habilitado, siempre que al menos uno de los mecanismos admitidos por el servidor también sea respaldado por el cliente". Entonces, claramente, el soporte GSSAPI (que entiendo que es necesario para Active Directory) debe estar disponible dentro del cliente y el servidor.
Tengo que decir que estoy aprendiendo demasiado sobre lo interno de cómo Subversion maneja la autenticación de lo que siempre quise. Y desafortunadamente, simplemente estaba buscando una respuesta sobre si puedo tener soporte de autenticación de Active Directory cuando uso SVNServe en un servidor de Windows y accedo a esto desde clientes de Windows. De acuerdo con la documentación oficial, parece que esto es posible; sin embargo, puede ver que la configuración no es trivial si es posible.
ACTUALIZACIÓN: 6: Dado que el desarrollo en Subversion 1.7 está finalizando, ¿alguien podría agregar algo sobre si Subversion 1.7 mejorará la situación de lograr que SVNServe se autentique usando Active Directory?
Respuestas:
Como ya se mencionó, VisualSVN Server es la herramienta que desea. Es un paquete todo en uno para Windows que simplemente usa Apache dentro de él; nunca lo sabrías a menos que estuvieras hurgando en los dlls que instala, aunque para todos es un servicio de Windows que tiene un complemento mmc para administrarlo Puede cambiar el puerto en el que se ejecuta si ya tiene el puerto 80 tomado.
Entiendo que se está trabajando en soporte sasl a través de svnserve en este momento.
fuente
Estoy usando apache con svn ejecutándose en debian linux autorizando de nuevo un servidor de directorio activo. los clientes se conectan al repositorio a través del protocolo http. Si esta configuración es aceptable para usted, continúe leyendo.
Esto también debería funcionar en Apache para Windows, pero nunca lo intenté. lo que sigue es específico de Debian pero debería funcionar de manera similar en Windows / otras distribuciones; no perderás tu historial de svn mientras migras ...
instalar el software requerido:
en configuración para vhost de apache [los enlaces simbólicos a ellos se pueden encontrar en / etc / apache2 / sites-enabled]. dentro de VirtualHost agregar:
asegúrese de que apache cargue el módulo ldap:
asegúrese de que apache pueda modificar archivos en el repositorio svn:
su svn_authz debe contener reglas que indiquen quién puede acceder a qué. en mi caso:
Puede obtener más información sobre la sintaxis de ese archivo aquí .
si llegaste tan lejos, tus usuarios pueden visitar http: //server.address/svn/ usando cualquier cliente svn [tortoise / cmdline / visual svn], verán todo el historial y continuarán leyendo / escribiendo.
fuente
Puede usar saslNTML en lugar de GSSAPI. El dll saslNTML se instala con TSVN de manera predeterminada, y creo que también se incluye en el cliente svn de collab.net.
Hay dos opciones que debe configurar en su archivo de configuración sasl:
y opcional
y, por supuesto, debe configurar la lista de mech en su archivo de configuración para incluir NTML.
Solo intenté esto una vez con TSVN cuando implementé todo. Pero alguien más configuró un servidor de prueba para mí, así que no tengo idea de cuáles son las opciones de configuración exactas.
fuente