web-dev-qa-db-fra.com

Jenkins restreint l'affichage des travaux par utilisateur

Existe-t-il un moyen de limiter l'utilisateur à l'affichage de certains travaux uniquement dans Jenkins?.

Jenkins permet de limiter la capacité utilisateur par projet via la "Stratégie d'autorisation de matrice basée sur projet". Le problème est qu'un utilisateur ne peut accéder à rien sans le paramètre "Général" "Lire". Cela semble leur permettre de voir tous les emplois.

Y at-il un autre plugin qui permettrait la restriction de travail?

62
ulrichenslin

Pensez que c’est ce que vous recherchez: Autoriser l’accès à des projets spécifiques pour les utilisateurs

Brève description sans captures d'écran:
Utilisez Jenkins "Stratégie d’autorisation de matrice basée sur le projet" sous "Gérer Jenkins" => "Configurer le système". Sur la page de configuration de chaque projet, vous avez maintenant "Activer la sécurité basée sur le projet". Ajoutez maintenant chaque utilisateur que vous souhaitez autoriser.

55
Christian

Un seul plugin m'aide: Stratégie basée sur les rôles :

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

Mais la documentation officielle (wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin) est déficiente.

Les configurations suivantes ont fonctionné pour moi:

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

En gros, il vous suffit de créer des rôles et de les faire correspondre à des noms de travail à l'aide de regex.

12
JRichardsz

Vous pouvez utiliser la stratégie d'authentification de la matrice basée sur le projet et activer l'autorisation de lecture globale, mais désactiver la tâche de lecture au niveau du système. Ensuite, vous devez activer le travail de lecture pour chaque projet spécifique que vous souhaitez rendre visible pour l'utilisateur actuel. Veuillez vous référer à ce problème résol pour plus d'informations. Quelques infos à partir de là:

J'implémente l'autorisation READ au niveau du travail. Lorsque cela est fait, un utilisateur ne disposant pas de l'autorisation READ pour un travail en particulier ne verra pas ce travail dans n'importe quelle vue, pourra accéder directement à la page du travail, verra toute référence au travail (par exemple dans les dépendances en amont ou en aval).

De plus, je vous recommande d'aller plus loin et de vérifier plugin de stratégie de rôle . Il peut simplifier la gestion des utilisateurs/rôles, vous pouvez utiliser ce qui est décrit ci-dessus pour donner accès à certains travaux.

7
Vadim Kotov

Comme mentionné ci-dessus par Vadim, utilisez Jenkins "Stratégie d’autorisation de matrice basée sur projet" sous "Gérer Jenkins" => "Configurer le système". N'oubliez pas d'y ajouter votre administrateur et de lui donner toutes les autorisations. Ajoutez maintenant l'utilisateur restreint à cet endroit et donnez un accès en lecture global. Ensuite, allez à la page de configuration de chaque projet, vous avez maintenant l'option "Activer la sécurité basée sur le projet". Ajoutez maintenant chaque utilisateur que vous souhaitez autoriser.

2
NMS

J'utilise une combinaison de plusieurs plugins - pour l'attribution de base des rôles et les autorisations que j'utilise plugin de stratégie de rôle.

Lorsque je dois séparer un rôle en fonction de paramètres (par exemple, tout utilisateur de job-runner est capable d'exécuter des travaux, mais l'utilisateur UUU uniquement est autorisé à exécuter le travail de déploiement à déployer sur un ordinateur MMM), j'utilise plug-in Python et définissez un script python) comme première étape de construction et terminez avec sys.exit (-1) lorsque le travail ne peut pas être exécuté avec la combinaison de paramètres donnée.

Build User Vars Plugin me fournit les informations sur l'utilisateur exécutant le travail en tant que variables d'environnement.

Par exemple:

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)
2
Rostislav Matl

Vous pouvez installer le plug-in "Extended Read Permission". Ensuite, dans les "Paramètres généraux" ou dans la configuration individuelle des tâches, vous pouvez donner à l'utilisateur la permission "Lecture étendue".

0
Rahul Singhai

Essayez d'aller dans "Manage Jenkins" -> "Manage Users", allez à l'utilisateur spécifique, modifiez sa configuration par défaut "Ma section de vues".

0
jordilin