Solución de servidor Git usando permisos de archivo

Mi empresa tiene un montón de repositorios git en una carpeta que tiene control de acceso a través de nuestro dominio de directorio activo. Hasta ahora, se ha accedido a la carpeta a través de smb usando la autenticación kerberos y todos nuestros clientes están configurados con file:// urls.

Esto obviamente es muy malo. Estoy tratando de configurarnos con un servidor git adecuado, ya sea en http o en ssh, pero nuestro administrador de red tiene muy claro que cualquier solución que busquemos tiene que mantener los permisos basados ​​​​en el grupo del directorio activo (con preferencia a mantener los permisos de nivel de archivo) , y que la empresa no está dispuesta a pagar por una solución. Desafortunadamente, estos requisitos me atan un poco las manos y me impiden usar mi paquete nginx git probado previamente y verdadero.

He investigado un poco, pero me está costando mucho juntar las piezas. ¿Alguien sabe (o me puede señalar en la dirección correcta de) una solución que logre:

  • Sirviendo a git a través de un protocolo estándar (se prefiere http/https/ssh) en lugar de un protocolo de archivo
  • Autenticación de todos los usuarios contra el directorio activo
  • Gratis (preferiblemente de código abierto)
  • Funciona en Windows (nuestro administrador de red no se siente cómodo con Unix).
  • Idealmente, aceptará boletos Kerberos para permitir el inicio de sesión único.
  • Idealmente, autenticará a los usuarios con los permisos de carpeta del repositorio en lugar de una configuración de permisos basada en grupos separados (el administrador de la red no quiere más trabajo manteniendo esto).

[Editar: requisito olvidado agregado con respecto al sistema operativo]

[Editar más de un año después]

Dejo esta pregunta aquí porque obtuvo algunos votos a favor, por lo que aparentemente hay otras personas que han tenido necesidades similares. Todas y cada una de las respuestas que cumplen parcialmente con esta lista pueden ser útiles para futuros lectores. Mis propios problemas han sido resueltos al obtener un nuevo administrador del sistema que no tiene miedo de que Linux me libere para aprovechar muchas más opciones.

[/Editar]

Posiblemente, esto no merezca una respuesta propia, pero Apache puede alojar repositorios de Git con las extensiones adecuadas habilitadas. También tiene módulos para usar la autenticación de Windows, y hasta ahora todo es gratuito y de código abierto, con capacidad tanto para http como para https. No lo he hecho yo mismo, pero busca aquí los detalles: jeremyskinner.co.uk/2010/07/31/…
¿Ha propuesto la alternativa de eliminar todos los accesos directos a los archivos de git repo? Esto tiene algunas ventajas: 1) Reduce su requisito a "debe integrarse con el directorio activo para los usuarios" y 2) obliga a todos a no tener acceso directo a los archivos. Es poco probable que las personas cambien de algo que creen que funciona bien a menos que se vean obligados a hacerlo, y usted parece ser el único que se preocupa lo suficiente como para cambiarlo. 3) El administrador de la red ya no tiene que mantener permisos de carpeta raros para un montón de repositorios. Si todos están dispuestos, incluso podría quitarle los permisos de repositorio por completo.
Hasta el final allí: "Mis propios problemas se resolvieron al obtener un nuevo administrador del sistema que no tiene miedo de que Linux me libere para aprovechar muchas más opciones". obtener el certificado lpi.

Respuestas (2)

Recomiendo RhodeCode Enterprise ( https://rhodecode.com ) que cumple con todos los requisitos de permisos de carpetas, pero no con ellos. RhodeCode Enterprise 3 es gratuito para hasta 10 usuarios y EDU y, además, es compatible con Mercurial y SVN.

Descargo de responsabilidad: soy cofundador de RhodeCode.

Para su información, el sitio no menciona en ninguna parte la accesibilidad de varios mecanismos de autenticación. Además, el sitio menciona la compatibilidad con Windows, pero luego puedo descargar y la compatibilidad con Windows está en versión beta. Por esas razones, no me gusta la idea de seguir con esto. ¿Puede proporcionar alguna documentación sobre cómo configuraría esto (tenga en cuenta que actualmente nuestro repositorio está en un servidor de Windows)
Comuníquese con nosotros en el sitio web, mencionando este hilo, para obtener acceso beta a nuestro instalador de Windows para RhodeCode Enterprise 3.

Primero, su SA debe comprender que el repositorio central es como una base de datos, por lo que la propiedad de los archivos es y debe ser irrelevante. El AD solo debe usarse para la autenticación para acceder a los datos; de hecho, es mejor que los datos sean administrados por un daemon que tenga acceso exclusivo al repositorio sin cabeza en esa ubicación central. Así es como lo hacen todos los sistemas, como gitlab, github, stash, etc. De hecho, puede instalar stash o gitlab (que tiene una larga lista de beneficios además de la seguridad) y permitir que los usuarios sean autenticados por AD, ya sea a través de un LDAP puerta de enlace o directamente. Atlassian Stash y Gitlab son opciones freemium (creo), también hay GitHub Enterprise y otras, además de algunas opciones de FOSS (aunque no conozco sus opciones de integración con AD)

Estoy 100% de acuerdo con lo que dice, desafortunadamente, su respuesta depende de cambiar la opinión de las SA sobre cosas que no tengo ni el tiempo con la compañía ni la influencia con las SA para hacerlo. Gitlab fue mi primera y preferida opción, pero mi SA lo rechaza debido a la actitud de Gitlab hacia Windows (una razón muy tonta para estar seguro, pero juegas las cartas que te reparten). Además, he estado luchando lo suficiente para que esta empresa pague un costo único por algún software (el hardware es fácil de obtener por alguna razón) y todas las ofertas, además de Gitlab, tienen un costo para 5 usuarios.