Jenkins ограничить просмотр заданий на пользователя - PullRequest
62 голосов
/ 30 ноября 2011

Существует ли способ запретить пользователю просматривать только определенные задания в Jenkins.

Jenkins допускает ограничение возможностей пользователя для проекта через «Стратегию авторизации матрицы на основе проекта».Проблема в том, что пользователь не может получить доступ к чему-либо без настройки «Общий» «Чтение».Похоже, это позволяет им просматривать все задания.

Есть ли еще один плагин, позволяющий ограничить работу?

Ответы [ 7 ]

55 голосов
/ 29 марта 2012

Подумайте, это то, что вы ищете: Разрешить доступ к определенным проектам для пользователей

Краткое описание без скриншотов:
Используйте Jenkins "Project-Matrix Authorization Strategy"в разделе «Управление Jenkins» => «Настроить систему».На странице конфигурации каждого проекта у вас теперь есть «Включить безопасность на основе проекта».Теперь добавьте каждого пользователя, которого хотите авторизовать.

12 голосов
/ 22 июля 2016

Только один плагин поможет мне: Ролевая стратегия :

wiki.jenkins-ci.org / дисплей / Дженкинс / Роль + Стратегия + Plugin

Но официальной документации (wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin) недостаточно.

У меня работали следующие конфигурации:

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

По сути, вам просто нужно создать роли и сопоставить их с именами заданий с помощью регулярных выражений.

7 голосов
/ 21 ноября 2012

Вы можете использовать основанную на проекте матричную стратегию аутентификации и включить разрешение на чтение в целом, но отключить задание на чтение на уровне системы.После этого вы должны включить Read Job для каждого конкретного проекта, который вы хотите сделать видимым для текущего пользователя.Пожалуйста, обратитесь к этой решенной проблеме для получения дополнительной информации.Некоторая информация оттуда:

Я реализую разрешение READ на уровне работы.Когда это будет сделано, пользователь, которому не хватает разрешения READ для конкретной работы, не будет: видеть это задание в любом представлении, иметь возможность прямого доступа к странице задания, видеть любую ссылку на задание (например, в зависимостях вверх или вниз по течению)

Кроме того, я рекомендую вам пойти дальше и проверить Плагин ролевых стратегий .Это может упростить управление пользователями / ролями, вы можете использовать описанное выше для предоставления доступа к определенным заданиям.

2 голосов
/ 16 января 2018

Как упоминалось выше Вадимом, используйте Jenkins «Стратегия авторизации матрицы на основе проекта» в разделе «Управление Jenkins» => «Настроить систему».Не забудьте добавить туда своего администратора и дать все разрешения.Теперь добавьте туда пользователя с ограниченными правами и предоставьте общий доступ для чтения.Затем перейдите на страницу конфигурации каждого проекта, теперь у вас есть опция «Включить безопасность на основе проекта».Теперь добавьте каждого пользователя, которого хотите авторизовать.

2 голосов
/ 28 апреля 2015

Я использую комбинацию нескольких плагинов - для базового назначения ролей и разрешений я использую Плагин Role Strategy .

Когда мне нужно разделить какую-то роль в зависимости от параметров (например, каждый, у кого есть задание, может запускать задания, но только пользовательский UUU может запускать задание развертывания для развертывания на MMM на компьютере), я использую Подключаемый модуль Python и определение сценария Python в качестве первого шага сборки и заканчивается sys.exit (-1), когда задание запрещено запускать с заданной комбинацией параметров.

Построить плагин Vars User предоставляет мне информацию о пользователе, выполняющем задание в качестве переменных среды.

например:

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)
0 голосов
/ 28 августа 2014

Вы можете установить плагин «Расширенные права чтения».Затем в «Глобальных настройках» или в индивидуальной конфигурации задания вы можете дать пользователю разрешение «Расширенное чтение».

0 голосов
/ 02 декабря 2011

Попробуйте перейти к разделу «Управление Jenkins» -> «Управление пользователями», перейдите к конкретному пользователю, отредактируйте его / ее конфигурацию в разделе «Мои представления» по умолчанию.

...