2011-11-30 122 views
48

¿Hay alguna forma de restringir al usuario para ver solo ciertos trabajos en Jenkins?Jenkins restringe la vista de trabajos por usuario

Jenkins permite la restricción de la capacidad del usuario por proyecto mediante la "Estrategia de autorización de matriz basada en proyectos". El problema es que un usuario no puede acceder a nada sin la configuración 'General' 'Lectura'. Esto parece permitirles ver todos los trabajos.

¿Hay algún otro complemento que permita la restricción de trabajo?

Respuesta

42

piensa que esto es, lo que está buscando: Allow access to specific projects for Users

Breve descripción sin capturas de pantalla:
Uso Jenkins "estrategia de autorización de matriz basado en proyectos" bajo "Administrar Jenkins" => "Configuración del sistema". En la página de configuración de cada proyecto, ahora tiene "Habilitar seguridad basada en proyectos". Ahora agregue cada usuario que desea autorizar.

+1

Parece que todavía necesita abrir la configuración de lectura general como sugiere OP. Intenté todo y no puedo hacer que la configuración de seguridad basada en proyectos haga nada sin verificar esa lectura general. Podría ser que estoy usando LDAP, pero funciona bien a nivel mundial. – quickshiftin

+1

Tiene que verificar la Lectura general, pero luego, en el proyecto que está asegurando, solo asegúrese de marcar "No heredar permisos globales". De esta forma, el usuario que no quiera ver el proyecto no lo verá. – metaforge

0

Intente ir a "Administrar Jenkins" -> "Administrar usuarios" vaya al usuario específico, edite su configuración "Mi sección de vistas" vista predeterminada.

+6

Esto solo oculta el trabajo del usuario, no impide el acceso a él. – stwalkerster

7

Puede utilizar la Estrategia de autenticación de matriz basada en proyectos y habilitar el permiso Leer general, pero deshabilitar la tarea de lectura en el nivel del sistema. Después de eso, debe habilitar Read Job para cada proyecto específico que desee que sea visible para el usuario actual. Consulte this resolved issue para obtener más información. Alguna información de allí:

Estoy implementando permiso de lectura en el nivel de trabajo. Cuando se hace esto, un usuario que carece del permiso de LECTURA para un trabajo en particular no: verá ese trabajo en ninguna vista, podrá acceder a la página de trabajo directamente, verá cualquier referencia al trabajo (por ejemplo, en sentido ascendente o descendente) dependencias)

Además, le recomiendo que vaya más allá y revise Role Strategy Plugin. Puede simplificar la administración del usuario/rol, puede usar lo descrito anteriormente para dar acceso a ciertos trabajos.

0

Puede instalar el complemento "Permiso de lectura ampliado". Luego, en "Configuración global" o en la configuración de trabajo individual, puede otorgar al usuario permiso de "Lectura extendida".

2

Uso la combinación de varios complementos - para la asignación básica de roles y permisos, uso Role Strategy Plugin.

Cuando necesito dividir algún rol dependiendo de los parámetros (por ejemplo, todos los que tienen job runner pueden ejecutar trabajos, pero el usuario UUU solo puede ejecutar el trabajo de implementación para implementar en la máquina MMM), utilizo Python Complemento y defina un script de python como primer paso de compilación y finalice con sys.exit (-1) cuando el trabajo está prohibido para ejecutarse con la combinación de parámetros dada.

Build User Vars El complemento me proporciona la información sobre el usuario que ejecuta el trabajo como variables de entorno.

E.g:

import os 
import sys 

print os.environ["BUILD_USER"], "deploying to", os.environ["target_host"] 

# only some users are allowed to deploy to servers "MMM" 
mmm_users = ["UUU"] 

if os.environ["target_host"] != "MMM" or os.environ["BUILD_USER"] in mmm_users: 
    print "access granted" 
else: 
    print "access denied" 
    sys.exit(-1) 
7

Sólo un plugin que me ayude: basado en roles Estrategia:

wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

Pero la documentación oficial (wiki.jenkins-ci.org/display/JENKINS/Role+Strategy + Plugin) es pobre.

Esto es real ejemplo de un gran documentación:

kblearningacademy.com/configure-role-strategy-plugin-in-jenkins

que convierte a esta página pdf en caso de paradas de trabajo:

kblearningacademy_com_jenkins_Role+Strategy+Plugin

espero que esto ayude a alguien.

+0

Esta es la clave en la documentación: 'Paso 9. Agregue roles de proyecto basados ​​en cada proyecto'. –

0

Como se mencionó anteriormente por Vadim Utilice Jenkins "Estrategia de autorización de matriz basada en proyectos" en "Administrar Jenkins" => "Configurar sistema". No se olvide de agregar su usuario administrador allí y otorgar todos los permisos. Ahora agregue el usuario restringido allí y otorgue acceso de lectura general. Luego vaya a la página de configuración de cada proyecto, ahora tiene la opción "Habilitar la seguridad basada en proyectos". Ahora agregue cada usuario que desea autorizar.

Cuestiones relacionadas