it-swarm.com.de

Jenkins schränken die Anzeige von Jobs pro Benutzer ein

Gibt es eine Möglichkeit, den Benutzer darauf zu beschränken, nur bestimmte Jobs in Jenkins anzuzeigen?.

Jenkins ermöglicht die Einschränkung der Benutzerfähigkeit pro Projekt über die "Project-based Matrix Authorization Strategy". Das Problem ist, dass ein Benutzer ohne die Einstellung "Gesamt" "Lesen" auf nichts zugreifen kann. Dies scheint es ihnen zu ermöglichen, alle Jobs anzuzeigen.

Gibt es ein anderes Plugin, das die Jobbeschränkung zulässt?

62
ulrichenslin

Denken Sie daran, wonach Sie suchen: Erlauben Sie Benutzern den Zugriff auf bestimmte Projekte

Kurzbeschreibung ohne Screenshots:
Verwenden Sie Jenkins "Project-based Matrix Authorization Strategy" unter "Manage Jenkins" => "Configure System". Auf der Konfigurationsseite jedes Projekts haben Sie jetzt "Projektbasierte Sicherheit aktivieren". Fügen Sie nun jeden Benutzer hinzu, den Sie autorisieren möchten.

55
Christian

Nur ein Plugin hilft mir: Rollenbasierte Strategie :

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

Die offizielle Dokumentation (wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin) ist jedoch mangelhaft.

Die folgenden Konfigurationen haben bei mir funktioniert:

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

Grundsätzlich müssen Sie nur Rollen erstellen und sie mithilfe von Regex mit Jobnamen abgleichen.

12
JRichardsz

Sie können die projektbasierte Matrixauthentifizierungsstrategie verwenden und die Berechtigung "Gesamt lesen" aktivieren, den Leseauftrag jedoch auf Systemebene deaktivieren. Danach sollten Sie Read Job für jedes Projekt aktivieren, das Sie für den aktuellen Benutzer sichtbar machen möchten. Weitere Informationen finden Sie unter dieses behobene Problem . Einige Infos von dort:

Ich implementiere die READ-Berechtigung auf Jobebene. Wenn dies erledigt ist, wird ein Benutzer, dem die READ-Berechtigung für einen bestimmten Job fehlt, diesen Job in keiner Ansicht sehen, direkt auf die Job-Seite zugreifen können und Verweise auf den Job sehen (zum Beispiel in vor- oder nachgelagerten Abhängigkeiten).

Außerdem empfehle ich Ihnen, weiter zu gehen und Role Strategy Plugin zu lesen. Dies kann die Benutzer-/Rollenverwaltung vereinfachen. Sie können die oben beschriebenen Funktionen verwenden, um Zugriff auf bestimmte Jobs zu erhalten.

7
Vadim Kotov

Wie oben von Vadim erwähnt, verwenden Sie Jenkins "Project-based Matrix Authorization Strategy" unter "Manage Jenkins" => "Configure System". Vergessen Sie nicht, dort Ihren Administrator hinzuzufügen und alle Berechtigungen zu erteilen. Fügen Sie dort nun den eingeschränkten Benutzer hinzu und gewähren Sie insgesamt Lesezugriff. Rufen Sie dann die Konfigurationsseite jedes Projekts auf. Jetzt haben Sie die Option "Projektbasierte Sicherheit aktivieren". Fügen Sie nun jeden Benutzer hinzu, den Sie autorisieren möchten.

2
NMS

Ich benutze die Kombination mehrerer Plugins - für die grundlegende Zuordnung von Rollen und Berechtigungen verwende ich Role Strategy Plugin.

Wenn ich eine Rolle in Abhängigkeit von Parametern aufteilen muss (z. B. kann jeder mit Job-Runner Jobs ausführen, aber nur Benutzer-UUU darf den Bereitstellungsjob für die Bereitstellung auf Maschinen-MMM ausführen), verwende ich Python-Plugin) und definieren Sie ein python script als ersten Erstellungsschritt und enden Sie mit sys.exit (-1), wenn der Job nicht mit der angegebenen Parameterkombination ausgeführt werden darf.

Build User Vars Plugin liefert mir die Informationen über den Benutzer, der den Job als Umgebungsvariablen ausführt.

Z.B:

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

Sie können das Plug-In "Erweiterte Leseberechtigung" installieren. Anschließend können Sie entweder in den "Globalen Einstellungen" oder in der individuellen Auftragskonfiguration dem Benutzer die Berechtigung "Erweitertes Lesen" erteilen.

0
Rahul Singhai

Gehen Sie zu "Jenkins verwalten" -> "Benutzer verwalten", gehen Sie zu dem bestimmten Benutzer und bearbeiten Sie dessen Standardansicht "Meine Ansichten".

0
jordilin