¿Es recomendable pedirles a los empleados que creen cuentas de trabajo de GitHub?

91

He trasladado todos los repositorios Git de nuestra compañía a GitHub y ahora quiero agregar empleados a los proyectos. Como la mayoría de los empleados ya tienen cuentas personales de GitHub, me pregunto si debería pedirles que creen una cuenta de trabajo de GitHub. La razón por la que estoy pensando en hacer esto es para disminuir las posibilidades de acceso no autorizado a nuestra base de código, ya que sus cuentas personales pueden ser bien publicitadas a través de su actividad personal en el sitio, aumentando las posibilidades de ataques dirigidos. Además, si su cuenta personal se ve comprometida, no significará que el secuestrador pueda acceder a todo el código de la compañía. Dado que esto traerá la carga de mantener dos cuentas para los empleados, me pregunto si es el enfoque correcto e incluso si tiene sentido.

Actualización Gracias por todas las ideas útiles. No estableceré una respuesta como aceptada debido a la naturaleza subjetiva de la pregunta / respuestas y desde que tomé los mejores puntos de varias respuestas diferentes.

He decidido seguir adelante de esta manera: les recordaré a los empleados que las notificaciones por correo electrónico de GitHub relacionadas con el trabajo deberán enviarse a sus cuentas de correo electrónico de trabajo por razones prácticas. Por lo tanto, tendría más sentido crear cuentas de trabajo de GitHub. Si están dispuestos a usar sus cuentas personales de GitHub y conectarlas a sus cuentas de correo electrónico de trabajo, entonces está bien. En todo caso, los empleados deberán aceptar por escrito una serie de condiciones vinculadas al uso de GitHub. Estos están relacionados con la seguridad de la cuenta: elegir una contraseña segura utilizando un generador de contraseñas aleatorias seguro que no se use con ninguna otra cuenta, no acceder a GitHub a través de computadoras que no son de su propiedad o administradas por ellos, etc. Al final del día, los empleados deberán deciden si una cuenta de trabajo tiene más sentido para ellos o no.

fiorenti
fuente
La cuenta de trabajo sería igualmente fácil de comprometer, ¿no?
Boris Yankov
10
GitHub agregó enrutamiento de correo electrónico por organización en agosto de 2012. github.com/blog/1204-notifications-stars
Paul Schreiber
2
@BorisYankov, la cuenta de trabajo puede ser más difícil de comprometer, si no tiene ninguna actividad pública y el inicio de sesión no tiene relación con su nombre. Es seguridad por oscuridad, pero seguro ayuda. Puede crear un flujo de trabajo para que todos los correos electrónicos enviados por github también se envíen al líder del equipo de desarrollo, etc. Otro punto: como cuenta de trabajo, puede decidir e incluso hacer la debida diligencia, auditar cuentas y ver si cumplen con lo acordado. entre empresa y empleado. Un tercer punto importante: tan pronto como el usuario abandone su trabajo, puede hacerse cargo de su cuenta.
VP.
77
Va en contra de los términos de servicio de GitHub que las personas mantengan más de una cuenta. "Una persona o entidad legal no puede mantener más de una cuenta gratuita". help.github.com/articles/github-terms-of-service
Riley Major
2
Sobre este último comentario. Comprobado los términos, punto A.7. Entonces, ¿qué sucede si tiene su cuenta personal y su empresa crea otra cuenta en su nombre y la ha utilizado? ¿Se cancelará su cuenta personal incluso si no cometió ningún error?
Matteo Mosca

Respuestas:

63

Si hubiera un beneficio, sería simplemente doloroso. Pero nada apesta peor que doloroso e inútil. Solo tenga la cuenta personal única. Dos razones:

  • Github tiene un control de acceso increíblemente bueno en sus organizaciones. Si un empleado se va, puede eliminar instantáneamente su acceso. Si tuvieran una cuenta de empresa, tendría que reclamar la cuenta de alguna manera para obtener los beneficios establecidos. En la práctica, probablemente eliminarías el acceso a la cuenta, igual que si tuvieran una cuenta personal.

  • Tener más de una cuenta es doloroso. Iniciar sesión y cerrar sesión entre cuentas duele, y agregar comentarios, seguimientos y todas las cosas sociales cuando usa diferentes cuentas.

Referencias: creo un servidor de CI que tiene integración con GitHub , por lo que tengo muchas cuentas de prueba y he hablado con clientes con todo tipo de configuraciones extrañas, incluidas cuentas de trabajo separadas y cuentas personales. Siempre lleva a problemas.

Paul Biggar
fuente
25

¿Está el código de su empresa en repositorios públicos o privados? Si ellos (o al menos algunos) son públicos, y usted permitió que sus empleados usen sus propias cuentas de GitHub, entonces sería un incentivo para ellos escribir un buen código. Su nombre estaría literalmente unido a él, públicamente. Sin embargo, supondré que todos sus repositorios son privados.

En general, parece que preferiría que las cuentas de sus empleados no sean visibles públicamente en GitHub. Desafortunadamente, ganan dinero vendiendo GitHub Enterprise, así que imagino que esa es una razón por la que no le permiten crear cuentas privadas para organizaciones. En cualquier caso, tener (esencialmente) cuentas de trabajo bloqueadas sería realmente contra-intuitivo después de elegir un sitio muy social para alojar sus repositorios.

Imaginemos que creó cuentas de trabajo para sus empleados. ¿Haría cumplir alguna restricción sobre cómo pueden usar esas cuentas? ¿Les permitiría contribuir con código a proyectos que no son de trabajo para fines laborales? Si es así, sus cuentas se volverán públicamente visibles, lo que lo llevará de vuelta a su preocupación inicial. Podrías permitirles que hagan las contribuciones con sus cuentas personales, pero luego estás creando un problema logístico para ellos. Personalmente, recomendaría a mis empleados que contribuyan con código a otros proyectos como ellos mismos. Esto no solo les da un impulso de confianza, sino que les permite obtener una valiosa experiencia y construir su credibilidad.

En cualquier caso, no creo que valga la pena tener cuentas de trabajo. La interfaz de GitHub le permite controlar fácilmente quién tiene acceso a qué, por lo que eliminar el acceso es simple de cualquier manera. Tampoco creo que tener cuentas separadas realmente "dibuje una línea" entre proyectos personales y laborales más de lo que ya lo hace la interfaz de GitHub.

Además, tenga en cuenta cómo planea lidiar con esto a medida que su empresa crezca. ¿Las políticas que establezca ahora serán escalables desde el punto de vista de la administración? Administrar 5 cuentas en este momento podría estar bien, pero ¿qué sucede cuando creces a 20 o 50? Pero una vez que llegue a ese punto, tal vez GitHub Enterprise será una solución accesible. En ese caso, consideraría averiguar si las cuentas de GitHub pueden migrarse a las instalaciones de GitHub Enterprise. Si es así, puedo ver que esa es una razón positiva para tener cuentas de trabajo.

Jeremy Heiler
fuente
Grandes puntos, gracias. Sí, los repositorios son privados. En cuanto a trabajar en proyectos no laborales en el trabajo, no estoy preocupado por eso en absoluto. Es solo la seguridad de la cuenta.
fiorenti
He editado ese comentario en particular ya que no era relevante.
Jeremy Heiler
19

No está fuera de discusión, y en realidad es una muy buena idea.

Por muy lamentable que sea, debe planificar que sus empleados abandonen la organización en algún momento de la vida de la empresa. ¿Cómo va a sacar sus cuentas personales del repositorio de la compañía en ese momento?

¿Qué vas a hacer si el empleado se va en malos términos? En un mundo ideal, todo seguirá siendo profesional y no habrá animosidad entre la empresa y el ex empleado. Sería prudente planificar para circunstancias menos que ideales.

Si bien mantener dos cuentas es una molestia, sus empleados deberían aprovechar la oportunidad. Proporciona una línea más limpia entre lo que es suyo y lo que es la empresa.

Editar: Lo que preocupa aquí es proporcionar una separación clara entre las contribuciones personales del empleado a los proyectos X, Y, Z, etc. y su trabajo remunerado en el producto de su empresa. El uso de una cuenta de trabajo separada ayuda a proporcionar la delineación necesaria para identificar quién posee qué propiedad intelectual y derechos de autor asociados.

Por ejemplo, si un empleado utiliza su cuenta personal y contribuye tanto a la empresa como al Proyecto X, ¿cómo identifica qué papel desempeñó el empleado en esos momentos? ¿Fue la contribución a X en nombre de su empresa o su propia discreción personal? ¿El empleado o la empresa poseen los derechos de autor de ese trabajo otorgado a X? De hecho, si permite contribuciones externas al trabajo de su empresa, ¿cómo distingue si el empleado era un empleado o si era una contribución voluntaria?

En un sentido más amplio, supongamos que tiene un empleado que construye una reputación que actúa en nombre de la empresa contribuyendo a otros proyectos. Cuando ese empleado se va, ¿cómo indica que la cuenta de usuario personal ya no está asociada con su empresa? Pueden ocurrir serios problemas de marca sin una descripción clara de para qué sirve una cuenta en particular.

Es muy fácil caer en un camino de propiedad, marca y derechos de autor cuando comienzas a pensar en los posibles escenarios. El uso de cuentas de trabajo separadas ayuda a eliminar parte de esta ambigüedad. La empresa necesita poder reclamar las contribuciones hechas en su nombre.

No se trata de los aspectos técnicos de separar la cuenta de usuario, sino de las cuestiones legales que pueden hacer que te tropieces.

Tenga en cuenta que esto puede ser un punto discutible si todos los productos de su empresa se lanzan como código abierto bajo licencia permisiva y / o no está preocupado en absoluto por posibles problemas de marca.
(Un consejo para Paul Biggar por solicitar esta edición)


fuente
Gracias, también agradecería esta política si fuera un empleado por los motivos mencionados. La interfaz de GitHub le permite eliminar fácilmente el acceso de los usuarios de repositorios privados. También supongo que si un empleado se va en muy malos términos, en la mayoría de los casos tendrá tiempo suficiente para hacer daño si lo desea.
fiorenti
23
No entiendo esta respuesta. GitHub tiene control de acceso de grano fino. Cuando un empleado se va, usted elimina su acceso de su organización. ¿Qué tiene de difícil esto? En realidad, es más fácil eliminar su cuenta personal de lo que sería "reclamar" su cuenta de trabajo.
Paul Biggar
2
@fiorenti: presumiblemente, el usuario también tendría una comprobación completa del código, ¡lo que sucedería independientemente de dónde esté alojado el código!
Paul Biggar
2
@PaulBiggar: actualicé mi respuesta para capturar algunos de los problemas más amplios involucrados. Es principalmente un problema de atribución legal que me lleva a recomendar cuentas separadas. He visto una serie de casos en los que no separar las cuentas personales del trabajo generaba graves dolores de cabeza después. El MMV de todos, y cada situación debe ser examinada en función del espíritu de la empresa.
Gracias por señalar el posible problema legal en el campo minado con el que se puede encontrar
RidiculousRichard
10

Dado que todo el mundo parece estar de acuerdo con la falta de la necesidad del empleador de separar ambos, aquí está mi corta experiencia de haber intentado usar mi cuenta personal en proyectos profesionales y contribuciones de código abierto hechas en el contexto del trabajo.

Solo para completar el contexto: no me preguntaron nada sobre cuentas, en realidad GitHub es desconocido para la mayoría de las personas en mi lugar de trabajo. Simplemente pude obtener luz verde para abrir el proyecto en el que trabajaré, y fui con la menor cantidad de trabajo, es decir, usando mi cuenta personal.

Desde el punto de vista de un empleado, una cosa que realmente odio: recibir notificaciones en mi correo electrónico personal para cosas de trabajo.

A partir de esa observación, me di cuenta de que es una ruptura flagrante de la barrera profesional / personal: si quiero contribuir a un proyecto durante mi tiempo libre, todavía recibo todas las actualizaciones de mis proyectos de trabajo ... Y puede generar confusión para los colaboradores externos. , quién podría contactarlo sin saber que está fuera de ese proyecto.

Entonces, por supuesto, hay un equilibrio para encontrar con el hecho de que su reputación personal puede obtener de sus contribuciones laborales. Pero, de nuevo, podría ser lo contrario si su nombre se asocia con un proyecto pobre ...

Al final, como la pregunta se hace desde el punto de vista del empleador , y considerando todas las otras respuestas: diría que probablemente no tiene mucho sentido hacer cumplir el uso de cuentas dedicadas al trabajo . Pero no debe prohibirlo, de modo que los empleados que prefieren elevar la barrera personal puedan hacerlo, y quizás insinuar sobre esos riesgos ...


Como nota al margen, con respecto a la seguridad, ya que parece haber un rechazo fácil en otras respuestas:

Por supuesto, una cuenta "laboral" no sería más o menos segura que una cuenta "personal" con respecto a las contraseñas. Pero cuando usa GitHub, puede presionar con una tecla SSH. Y esa clave generalmente se encuentra en la sesión de uno ... Por lo tanto, la cuenta personal puede comprometer todos los repositorios de trabajo con un simple robo de computadora personal (sin conocimiento de contraseña), mientras que una cuenta de trabajo dedicada probablemente tendría su clave solo en la máquina de trabajo, por lo que más físicamente seguro (con suerte).

MattiSG
fuente
+1: Dos puntos en los que no pensé: correos electrónicos y claves SSH. Si bien tener correos electrónicos separados en GitHub es un problema, puede configurar varias claves SSH para su cuenta.
Jeremy Heiler
@JeremyHeiler ¿Qué quieres decir exactamente con "tener correos electrónicos separados en GitHub es un problema?" . Estoy usando tres correos electrónicos diferentes (uno de edad, uno personal actual, el trabajo de uno), una vez que haya añadido a su perfil GitHub los compara con su cuenta sin problema :)
MattiSG
Me refería a esta esencia . ¿Está diciendo que si coloca su correo electrónico de trabajo en su git.config en su computadora de trabajo y lo agrega a su cuenta, todas las notificaciones relacionadas con el trabajo se enviarán a su correo electrónico de trabajo? Si es así, ¡genial!
Jeremy Heiler
@JeremyHeiler Oh, no está bien, tuvimos un pequeño malentendido de lo que es "un problema" con los correos electrónicos :) No, de hecho, como dije en mi respuesta, siempre recibes notificaciones en tu cuenta "principal" (generalmente personal). Pero no es un "problema", ya que necesitaría una cuenta para cada dirección de confirmación: puede asociar tantos correos electrónicos como desee con su cuenta, pero solo un correo electrónico recibe notificaciones de su cuenta.
MattiSG
Lo siento, sí, debería haber sido más específico en mi comentario inicial :-P
Jeremy Heiler
9

Yo votaría "No". Es bastante complicado para sus desarrolladores y le brinda seguridad a través de la oscuridad: si alguien se dirige activamente a sus desarrolladores, hay muchos otros vectores de ataque para que alguien obtenga su código.

Además, como startup, a menos que tenga muchos algoritmos mágicos de tipo secreto en juego, alguien que obtenga su código sería vergonzoso, terrible y desagradable, pero no debería resultar en una ventaja competitiva significativa (quién podría usar legalmente su código?) o hacer que cierre su negocio.

¿Una probabilidad de orden tan baja frente a la productividad del desarrollador? Tomaría la productividad del desarrollador, pero ese es mi cálculo. :)

Matt Rogish
fuente
2

Yo diría que debería ser una opción que le quede al empleado. Una cosa que diría es que no los obligue a usar su cuenta personal de Github si no lo desean. Estaba en una empresa que usaba GitHub y, aunque no era un requisito, personalmente quería crear una cuenta separada. La razón principal fue proteger mis proyectos personales. No quería que la compañía tratara de decir que uno de mis proyectos personales era de ellos porque estaba bajo la misma cuenta de github utilizada para sus proyectos de empresa (no estoy seguro de si eso alguna vez se mantendría en la corte, sin embargo, no tengo mucha fe en el sistema legal cuando se trata de cosas como esta). Creo que tener esa limpieza separada puede ser algo bueno.

ryanzec
fuente
2

Lo estamos haciendo en nuestra empresa. No quiero comenzar una discusión "qué es más seguro, github o un servidor debajo de su mesa para que todos tengan acceso de root, no estoy seguro si la copia de seguridad está funcionando, etc.". Nuestro enfoque fue:

  • cada desarrollador debe crear una nueva cuenta, no relacionada con su cuenta personal de github
  • debería usar el correo electrónico de la empresa.
  • Debe cumplir con nuestras reglas de seguridad (requisito de nombre de usuario y contraseña).
  • No pueden mostrar / tener ninguna actividad pública.
  • Es propiedad de la empresa. No es su cuenta.
  • Todas las cuentas están conectadas con una compañía, nombre aleatorio también. No hay actividad pública también.
VP.
fuente
2
No puede aplicar el requisito de complejidad de la contraseña ya que no tiene forma de validar la contraseña de GitHub, ¿por qué incluso tenerla?
Ramhound
bueno, estás diciendo que si no eres capaz de hacer cumplir técnicamente algo, no lo estás haciendo cumplir. Estoy diciendo que si un empleado lee la política de seguridad y si la firma, sabiendo las consecuencias, es una aplicación.
VP.
3
Estoy diciendo que no tiene forma de saber que no se está haciendo algo porque no tiene forma de verificar que un empleado haya creado la contraseña de la cuenta de GitHub.
Ramhound
bueno, si, por ejemplo, una cuenta está comprometida, y nosotros, de alguna manera, descubrimos que la contraseña era abc123, podemos "responsabilizar" al empleado. No veo un problema aquí. Otro punto: ¿dónde está escrito que lo hago cumplir? Escribí que debe (ahora actualicé a debería) ...
VP.
Este enfoque debe ser moderado con un acuerdo de que este nombre también es de ellos y que no tomará ninguna medida en su nombre .
Michael
0

Reconozco que estas preguntas y respuestas tienen algunos años, por lo que tal vez esto no estaba disponible antes, pero expresan específicamente en las diferencias entre las cuentas de usuario y organización que:

Puede ser tentador tener más de una cuenta de usuario, como para uso personal y uso comercial, pero solo necesita una cuenta.

GitHub ha creado buenas herramientas para activar / desactivar las notificaciones por repositorio y, más aún, parece que combinar el personal / trabajo tiene más sentido.

scojomodena
fuente
¿De qué se trataba ese voto negativo, eh? Creo que esta es una buena respuesta.
John McGehee
-2

Las personas aún no confían en los servidores de origen basados ​​en la nube. Github se jacta de que muchas compañías web de la nueva era se inscribieron con ellos, pero el hecho real es que la mayoría de las personas tienen sus propios servidores para mantener el código fuente. En mi experiencia, la mayoría de ellos usa Clear-case o SVN. Git aún no se ha adaptado en un entorno empresarial. Incluso los servidores de correo corporativo no son realmente apreciados fuera de las instalaciones de la compañía.

sarat
fuente
1
Actualmente trabajo en una empresa de servicios, los capacité con Git, y la mayoría de sus clientes (como grandes empresas) están migrando de ClearCase, o se están preparando para hacerlo en sus próximos proyectos ...
MattiSG