Ocultar ramas utilizando la seguridad

9:18 0 Comments

¿Cómo puedo instalar Plastic con seguridad para que los desarrolladores puedan ver solamente sus propias ramas además de la principal y la de mantenimiento?
Esto fue lo que me preguntaron hace un par de días y ahora intentaré dar una respuesta detallada y explicar paso a paso cómo instalarlo con Plastic.
Asegura tu servidor de repositorios
El primer paso será asegurar el servidor repositorio. ¿Sabes lo que es el servidor repositorio? Bien, es el servidor que se ocupa de todos los repositorios, y como sabrás, los repositorios son los únicos que en realidad contienen los datos (ramas, revisiones, objetos, etiquetas…).¿Por qué es una buena idea asegurar el servidor repositorio? Plastic implementa una completa jerarquia de seguridad. Todo se hereda del servidor de repositorios, después del repositorio, y después de los objetos que hay dentro de cada repositorio. Puedes verlo en el siguiente diagrama:






Lo primero que haremos será permitir el acceso al servidor de repositorios solamente a nuestros usuarios con permiso. En nuestro caso daré permisos a gestión, desarrollo y los usuarios especiales llamados OWNER. Para configurar los permisos del servidor de repositorios desde la interfaz gráfica GUI tenemos que ir a vista de repositorios, hacer click con el botón derecho sobre un repositorio e ir a permisos del servidor de repositorios....



Por favor tenga en cuenta que tanto owner como el grupo de gestión tienen todos los permisos concedidos, y los desarrolladores no tienen el permiso view. Vea la siguiente figura:



De esta manera los desarrolladores no podrán ver ningún objeto que ellos no hayan creado, pero nosotros podremos concederles acceso a las ramas, objetos y etiquetas que necesiten para que puedan trabajar correctamente. Los permisos concedidos a owner aseguran que pueden trabajar en las ramas creadas por ellos.

Nota: comprueba la configuración de permisos con un usuario que pertenezca al grupo de administradores pertinente, gestión (management) en mi caso.
¡Asegura el acceso al código!
Ahora mismo ningún desarrollador puede acceder al código ya que todos los ítems heredan del repositorio, y este hereda del servidor de repositorios, y el servidor de repositorios no tiene acceso de vista configurado para los desarrolladores.
Así que si como administrador vas a la vista de objetos, pinchas con el botón derecho sobre el ítem raíz y vas a los permisos de ese ítem como muestra la siguiente figura:



Una vez que estás aquí debes de asegurarte de dar el permiso de vista (view) a los desarrolladores



Asegurando las ramas
Ahora es el turno de las ramas. En el ejemplo queremos que todos los desarrolladores puedan ver la rama principal y las ramas creadas por ellos. El segundo requisito se logra gracias a los permisos de owner en el nivel del servidor de repositorios.

En realidad, si queremos conceder permiso a los desarrolladores para ver la rama principal y la de mantenimiento (y cualquiera de las otras ramas que queremos que estén disponibles) tenemos que ir a permisos de rama y habilitar el permiso de vista.



Comprobar que todo funciona
Compruebe la siguiente figura. La instancia de plastic de la izquierda está funcionando como usuario privilegiado, mientras que la de la derecha corresponde a un desarrollador. Hay que tener en cuenta que el desarrollador sólo puede obtener el listado de las ramas principales y de mantenimiento y las que él mismo haya creadom, pero no las creadas por el usuario administrador (/main/task001pablo) en el ejemplo.



Colocar todo sin olvidarse de las etiquetas
Si te acuerdas de la jerarquía que se incluye arriba verás que las etiquetas no tienen permiso de vista tampoco. Así que después de crear una nueva etiqueta hay que asegurarse de proporcionar acceso.



El mecanismo de seguridad de Plastic otorga a los usuarios una enorme flexibilidad. El propósito de establecer permisos no siempre esta relacionado necesariamente con la prevención de accesos no deseados sino que también se emplea para hacer cumplir ciertas políticas de desarrollo. Hablaremos de esto en un futuro post.

0 comentarios: