Cómo crear/agregar usuarios en Jenkins y administrar permisos

⚡ Resumen inteligente

Creación de usuarios en Jenkins toma cuatro clics, pero asignar diferentes permisos a cada uno de ellos requiere el complemento Estrategia de autorización basada en roles, que reemplaza el rol global único que cada rol integrado Jenkins cuenta de otro modo acciones.

  • 🔘 Límite incorporado: Jenkins Puede crear muchos usuarios de forma predeterminada, pero todos ellos reciben los mismos privilegios globales.
  • ☑️ Primero, el plugin: Instale la estrategia de autorización basada en roles y, a continuación, cambie la autorización a la estrategia basada en roles antes de que aparezca cualquier pantalla de roles.
  • Tres tipos de roles: Las funciones globales abarcan todo el controlador, las funciones de elementos se dirigen a trabajos y carpetas, y las funciones de agente se dirigen a las máquinas de compilación.
  • 🧪 Ejemplo trabajado: En la pantalla Asignar roles, se crea un rol de desarrollador, se le otorgan permisos y se le asigna al usuario guru99.
  • 🛠️ Coincidencia de patrones: Un rol de elemento utiliza una expresión regular como tester.*, por lo que cada trabajo o usuario que coincida adoptará automáticamente el rol.
  • ⚙️ Regla de seguridad: Mantén siempre una cuenta con el rol de Administrador/General; de lo contrario, al guardar un cambio de rol, podrías bloquear el acceso a todos los demás.

Cómo crear y agregar usuarios en Jenkins y administrar permisos

Generalmente, en una organización grande, hay varios equipos separados para administrar y ejecutar trabajos en JenkinsPero gestionar a esta multitud de usuarios y asignarles roles puede resultar problemático.

Por defecto, Jenkins Incluye opciones muy básicas para la creación de usuarios. Se pueden crear varios usuarios, pero solo se les pueden asignar los mismos roles y privilegios globales. Esto no es lo ideal, sobre todo para una organización grande.

El Complemento de estrategia de roles te permite asignar diferentes roles y privilegios a diferentes usuarios. Primero deberás instalar el complemento en tu Jenkins entorno, por lo que el tutorial a continuación cubre primero la creación del usuario, luego el complemento y luego las pantallas de roles que desbloquea.

Cómo crear/agregar un usuario en Jenkins

A continuación se detallan los pasos para crear un nuevo usuario en Jenkins:

Paso 1) Iniciar sesión en Jenkins Panel de Control

Ingrese a su Jenkins panel de control visitando http://localhost:8080/

Si no has instalado Jenkins En tu servidor local, ve al lugar apropiado. URL y accede a tu panel de control usando tus credenciales de inicio de sesión. El panel de control al que accedes se muestra a continuación.

Jenkins El panel de control se abrió en el navegador en el Jenkins ruta de instalación

Paso 2) Elige la opción

Ahora verá opciones para crear y agregar un usuario en Jenkins y gestionar los usuarios actuales.

Gestionar Jenkins Pantalla que muestra las opciones para crear y administrar usuarios.

Paso 3) Crea un nuevo usuario

  • En Administrar JenkinsHaga clic en Crear usuario
  • entrar: Jenkins agregar detalles del usuario como contraseña, nombre, correo electrónico, etc.
  • Haga clic en Crear usuario

Paso 4) Se crea el usuario

Verás en el panel de control que hay una nueva Jenkins El usuario se ha creado según los datos introducidos, tal como se muestra en la lista de usuarios a continuación.

Lista de usuarios en el Jenkins panel de control después de que se haya creado el nuevo usuario

⚠️ Nota de versión: corriente Jenkins Los lanzamientos enumeran esta pantalla como Gestionar Jenkins > Usuarios más bien que Administrar Usuarios. La función de crear usuario El botón y los campos que contiene no han cambiado, y la pantalla solo existe mientras JenkinsLa base de datos de usuarios propia constituye el ámbito de seguridad; en su lugar, un sistema LDAP o de inicio de sesión único gestiona las cuentas externamente.

Cómo instalar el plugin Role Strategy en Jenkins

La pantalla de usuario integrada crea cuentas, pero no puede otorgarles permisos diferentes. Esta funcionalidad se obtiene con el complemento Estrategia de autorización basada en roles, que se instala de la siguiente manera.

Hay dos métodos para instalar complementos en Jenkins:

  1. Instalándolo a través de su Jenkins Afiliados
  2. Descargando el complemento desde Jenkins sitio web y su instalación manual.

Paso 1)

  1. Vaya al Gestionar Jenkins
  2. Haz clic en la opción Administrar complementos.

Gestionar Jenkins página con la opción de gestión de complementos resaltada

Paso 2)

  1. En la pantalla de secciones disponibles, busque "rol".
  2. Seleccionar rolEstrategia de autorización basada en plugin
  3. Haga clic en "Instalar sin reiniciar"(asegúrate de tener una conexión a Internet activa)

Resultados de búsqueda del administrador de complementos que muestran el complemento Estrategia de autorización basada en roles

⚠️ Nota de versión: El camino es ahora Gestionar Jenkins > Complementos y la pestaña está etiquetada Complementos disponiblesEl cuadro de búsqueda y el nombre del complemento son iguales, por lo que los dos pasos anteriores siguen siendo válidos.

Paso 3)

Una vez instalado el complemento, se mostrará un estado de "éxito", como se muestra en la pantalla de instalación a continuación.

Pantalla de instalación del plugin que muestra el estado de éxito del plugin de estrategia de roles.

Haga clic en Vuelve a la página superior.

Paso 4) Vaya al Gestionar Jenkins -> Configurar seguridad global -> En Autorización, selecciona Estrategia basada en roles. Haga clic en GuardarLa sección de autorización tiene este aspecto.

Sección de autorización de la pantalla de seguridad global con la estrategia basada en roles seleccionada.

En corriente Jenkins El enlace a esta página es Gestionar Jenkins > Seguridady la página en sí todavía está dirigida Configurar la seguridad global con el mismo menú desplegable de Autorización.

Tipos de roles en el plugin de estrategia de roles

Una vez activada la estrategia basada en roles, el complemento ofrece tres ámbitos de rol distintos. Elegir el ámbito incorrecto es la razón más común por la que un permiso parece no tener efecto, por lo que conviene saber qué abarca cada uno antes de crear nada.

Tipo de rol <b></b><b></b> Uso típico
Funciones globales El conjunto Jenkins controlador, y anulan cualquier cosa establecida en los roles de los elementos administrador, un rol de solo lectura autenticado, anónimo
Roles de los elementos Trabajos, canalizaciones y carpetas cuyo nombre completo coincide con un patrón de expresión regular. Otorgar a un equipo derechos de compilación y configuración únicamente en sus propios trabajos.
Funciones de agente Crea agentes que coincidan con un patrón. Permitir que un equipo conecte o desconecte a sus propios agentes.

El tutorial a continuación utiliza un rol global para developer y un rol de elemento para probador. Observe la nomenclatura: el complemento ahora llama al segundo ámbito Roles de los elementos, porque abarca carpetas y canalizaciones, así como trabajos simples. Las versiones anteriores (y las capturas de pantalla más abajo en esta página) etiquetan la misma tabla. Roles del proyecto.

Cómo administrar usuarios y roles en Jenkins

A continuación se detallan los pasos sobre cómo gestionar y asignar roles en Jenkins:

Paso 1)

  1. Vaya al Gestionar Jenkins
  2. Seleccionar Administrar y asignar roles

Gestionar Jenkins Página que muestra la entrada "Administrar y asignar roles" agregada por el complemento.

Nota: que el Administrar y asignar roles Esta opción solo será visible si ha instalado el complemento de estrategia de roles y ha cambiado la autorización a la estrategia basada en roles.

Paso 2) Haga clic en Gestionar roles para agregar nuevos roles según su organización.

Pantalla Administrar y asignar roles con la opción Administrar roles

Paso 3) Para crear un nuevo rol llamado “desarrollador”,

  1. Escriba "desarrollador" en "rol".
  2. Haga clic en "Agregar" para crear un nuevo rol.
  3. Ahora, seleccione el Jenkins permisos de usuario que desea asignar al rol de “Desarrollador”.
  4. Haga clic en Guardar

La cuadrícula de casillas de verificación que aparece se muestra a continuación.

Pantalla de administración de roles con el rol de desarrollador agregado y sus permisos marcados.

Jenkins Grupos de permisos que puede asignar a un rol

Las casillas de verificación en la pantalla Administrar roles están agrupadas según el objeto sobre el que actúa cada permiso. La tabla a continuación explica qué controla cada grupo, lo que facilita enormemente la asignación de los permisos mínimos que un equipo realmente necesita.

Grupo de permisos Lo que otorga
En general Administrar, leer y los demás derechos aplicables a todo el controlador. Administrar Tiene el control total, así que concédelo con moderación.
Credenciales Visualización, creación y actualización de credenciales almacenadas
Agente Configurar, conectar, desconectar y eliminar agentes de compilación
Trabajos Crear, Cancelar, Configurar, Crear, Eliminar, Leer, Espacio de trabajo y Mover en trabajos
Ejecutar Eliminar, reproducir y actualizar un registro de compilación individual
Ver Creación, configuración, eliminación y lectura de vistas del panel de control
SCM Activar una compilación desde un gancho de control de versiones

Comienza cada nuevo rol con General/Leer más Trabajo/LeerSin esos dos permisos, un usuario que ha iniciado sesión ve un panel vacío incluso cuando se han activado otros permisos, lo cual es la confusión más frecuente relacionada con este complemento.

Cómo asignar roles en Jenkins

Paso 1) Ahora que ha creado roles, asignémoslos a usuarios específicos.

  1. Vaya al Gestionar Jenkins
  2. Seleccione Administrar y asignar roles

Se abrió la pantalla Administrar y asignar roles para acceder a la opción Asignar roles.

Paso 2) Agregaremos el nuevo rol "desarrollador" al usuario "guru99"

  1. Seleccione la casilla de verificación del rol de desarrollador.
  2. Haga clic en Guardar

Pantalla de asignación de roles con la casilla de verificación del rol de desarrollador marcada para el usuario guru99.

Puede asignar cualquier rol a cualquier usuario, según sus necesidades.

Cómo crear roles de proyecto en Jenkins

Los roles globales se aplican en todas partes. Cuando un permiso deba aplicarse solo a un conjunto de trabajos, cree un rol de proyecto en su lugar; el ámbito que el complemento ahora denomina rol de elemento.

Puede crear roles específicos del proyecto en Roles del proyecto.

Paso 1) In JenkinsGestionar y asignar roles

  1. Ingrese un rol como "probador"
  2. Agregue un patrón a esto agregando ensayador.*, de modo que a cualquier nombre de usuario que comience con "probador" se le asignará el rol de proyecto que especifique.
  3. haga clic en Agregar
  4. Seleccionar privilegios
  5. Haga clic en Guardar

La tabla de roles del proyecto completa se muestra a continuación.

Tabla de roles del proyecto con un rol de probador y el patrón de puntos y estrellas del probador ingresado

El patrón es una expresión regular que se compara con el nombre completo del artículo, por lo que tester.* también coincide con una carpeta llamada conjunto de pruebas y todo lo que contiene. Pruebe un nuevo patrón en un trabajo de prueba antes de aplicarlo a uno real. proyecto de estilo libre trabajo en oleoducto.

Estrategia de seguridad basada en matrices frente a estrategia basada en roles

La estrategia basada en roles no es la única opción de autorización en ese menú desplegable. Jenkins Los barcos incorporan seguridad basada en matrices, y para una instalación pequeña puede que sea todo lo que se necesite.

Punto de comparación Seguridad basada en matrices Estrategia basada en roles
Instalación Integrado Jenkins Requiere el complemento Estrategia de autorización basada en roles
Unidad de asignación A cada usuario o grupo se le otorgan permisos directamente. Los permisos pertenecen a un rol con nombre, y los usuarios están asociados a ese rol.
Añadiendo el décimo usuario Toda la fila de permisos se repite a mano. Marque una casilla de verificación de rol.
Control por trabajo Autorización matricial basada en proyectos, configurada trabajo por trabajo Un rol de elemento con un patrón cubre todos los trabajos coincidentes
Mejores ajuste Un puñado de usuarios con acceso casi idéntico Varios equipos, muchos puestos de trabajo, acceso que cambia a medida que la gente se traslada

La regla general es la cantidad de veces que se repite un permiso. Una vez que se ingresa el mismo patrón de verificación para un tercer usuario, un rol es más barato de mantener; el mismo argumento que impulsa a los equipos de trabajos ad hoc a un rol revisado. Canalización de CI / CD.

Preguntas Frecuentes

Se deben cumplir dos condiciones. El complemento Estrategia de autorización basada en roles debe estar instalado y la autorización en la pantalla de seguridad debe estar configurada como Estrategia basada en roles. La entrada permanece oculta hasta que se guarda el segundo paso.

Parada Jenkins, abierto config.xml en JENKINS_HOME y reemplazar el authorizationStrategy elemento con <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>, luego reinicia. Mantén siempre una cuenta con permisos de General/Administrador para evitar tener que hacer esto.

Sí. La pantalla Asignar roles acepta nombres de grupo, así como nombres de usuario, por lo que se puede asociar un grupo de LDAP o Active Directory a un rol una sola vez y, a partir de entonces, la gestión de la membresía se realiza completamente en el directorio.

Las herramientas de aprendizaje automático comparan los permisos otorgados con lo que cada cuenta realmente utiliza y señalan los que no se utilizan, lo que permite detectar roles con privilegios excesivos mucho más rápido que leyendo una matriz de permisos manualmente.

Copiloto de GitHub escribe el Groovy o llamadas REST que crean roles de forma masiva y elaboran expresiones de patrones para los roles de los elementos. RevRevisa todo lo que produce antes de ejecutarlo, porque un patrón incorrecto amplía silenciosamente el acceso.

Las cuentas se encuentran bajo JENKINS_HOME/users, una carpeta por usuario con una config.xml adentro. Los roles y sus permisos se encuentran en el archivo principal. JENKINS_HOME/config.xml, por lo que hacer una copia de seguridad de esa carpeta conserva ambas cosas.

Elimine la cuenta de la lista de usuarios; esto elimina el inicio de sesión, pero no su historial de compilaciones. Para revocar el acceso sin eliminar nada, desactive la casilla de verificación del rol para ese usuario en la pantalla Asignar roles y guarde.

Sí. El grupo de permisos Credenciales en la pantalla Administrar roles abarca la visualización, creación y actualización de secretos almacenados, por lo que se puede permitir que un rol ejecute una tarea, pero se le puede impedir leer las credenciales que utiliza.

Resumir este post con: