Как да създавате/добавяте потребители в Jenkins & Управление на разрешенията

⚡ Умно обобщение

Създаване на потребители в Jenkins отнема четири кликвания, но присвояването на различни разрешения на всяко от тях изисква плъгина Role-based Authorization Strategy, който замества единичната глобална роля, която всеки вграден... Jenkins сметка в противен случай акции.

  • 🔘 Вграден лимит: Jenkins може да създаде много потребители веднага щом е готов, но всеки един от тях получава едни и същи глобални привилегии.
  • ☑️ Първо плъгин: Инсталирайте стратегия за оторизация, базирана на роли, след което превключете „Оторизация“ на „Стратегия, базирана на роли“, преди да се появи екран за роли.
  • Три вида роли: Глобалните роли обхващат целия контролер, ролите на елементи са насочени към задачи и папки, а ролите на агенти са насочени към машини за изграждане.
  • 🧪 Разработен пример: Създава се роля на разработчик, дават се разрешения и се присвоява на потребителя guru99 на екрана „Присвояване на роли“.
  • 🛠️ Съпоставяне на шаблони: Ролята на елемент използва регулярен израз, като например tester.*, така че всяка съответстваща задача или потребител избира ролята автоматично.
  • Правило за безопасност: Дръжте един акаунт с правата „Общ/Администратор“ по всяко време, в противен случай запазването на промяна на ролята може да блокира всички.

Как да създавате и добавяте потребители в Jenkins и управление на разрешенията

Обикновено в голяма организация има множество отделни екипи, които управляват и изпълняват задачи. JenkinsНо управлението на тази тълпа от потребители и разпределянето на роли към тях може да се окаже проблематично.

По подразбиране Jenkins предлага много основни опции за създаване на потребители. Можете да създадете множество потребители, но можете да им присвоите само едни и същи глобални роли и привилегии. Това не е идеално, особено за голяма организация.

- Плъгин за стратегия за роли позволява ви да присвоявате различни роли и привилегии на различни потребители. Първо ще трябва да инсталирате плъгина във вашия Jenkins среда, така че ръководството по-долу обхваща първо създаването на потребител, след това плъгина, а след това екраните за роли, които той отключва.

Как да създадете/добавите потребител в Jenkins

По-долу са стъпките за създаване на нов потребител в Jenkins:

Стъпка 1) Влезте в Jenkins Табло

Влезте във вашия Jenkins таблото за управление, като посетите http://localhost:8080/

Ако не сте инсталирали Jenkins на вашия локален сървър, отидете на съответния URL и достъпете таблото си за управление, като използвате данните си за вход. Таблото за управление, на което ще се озовете, е показано по-долу.

Jenkins таблото за управление, отворено в браузъра на Jenkins инсталационен път

Стъпка 2) Изберете опцията

Вече ще видите опции за създаване и добавяне на потребител в Jenkins и да управлявате текущите потребители.

Управление Jenkins екран, показващ опциите за създаване и управление на потребители

Стъпка 3) Създайте нов потребител

  • Под „Управление“ JenkinsКликнете върху „Създаване на потребител“
  • Въведете Jenkins добавете потребителски данни като парола, име, имейл и др.
  • Щракнете върху Създаване на потребител

Стъпка 4) Потребителят е създаден

Ще видите на таблото, че е налице нов Jenkins Потребителят е създаден съгласно въведените данни, както е показано в списъка с потребители по-долу.

Списък с потребители в Jenkins таблото за управление след създаването на новия потребител

⚠️ Бележка към версията: ток Jenkins изданията посочват този екран като Управление Jenkins > Потребители , а не Управление на потребителите, Най- Създаване на потребител Бутонът и полетата върху него остават непроменени, а екранът съществува само докато Jenkins„собствената потребителска база данни е областта на сигурност — LDAP или област за еднократно влизане управлява акаунтите външно.“

Как да инсталирате плъгина за стратегия за роли в Jenkins

Вграденият потребителски екран създава акаунти, но не може да им дава различни разрешения. Тази възможност се предоставя с плъгина Role-based Authorization Strategy, инсталиран както следва.

Има два метода за инсталиране на плъгини в Jenkins:

  1. Инсталирането му чрез вашия Jenkins табло
  2. Изтегляне на плъгина от Jenkins уебсайт и ръчното му инсталиране.

Стъпка 1)

  1. Отиди Управление Jenkins
  2. Кликнете върху опцията „Управление на плъгини“

Управление Jenkins страница с маркирана опция за управление на плъгини

Стъпка 2)

  1. В екрана с наличните секции потърсете „роля“.
  2. Изберете Ролябазирана на оторизация стратегия плъгин
  3. Кликнете върху "Инсталирайте без рестартиране” (уверете се, че имате активна интернет връзка)

Резултати от търсенето в мениджъра на плъгини, изброяващи плъгина „Стратегия за оторизация, базирана на роли“

⚠️ Бележка към версията: пътят е сега Управление Jenkins > Плъгини и разделът е обозначен Налични плъгиниПолето за търсене и името на плъгина са едни и същи, така че двете стъпки по-горе все още важат.

Стъпка 3)

След като плъгинът бъде инсталиран, ще се покаже статус „успех“, както е показано на екрана за инсталиране по-долу.

Екран за инсталиране на плъгина, показващ състоянието на успеха на плъгина за стратегия за роли

Кликнете върху Върнете се на горната страница.

Стъпка 4) Отиди Управление Jenkins -> Конфигурирайте Глобална сигурност -> Под разрешение, изберете Ролева стратегия. Кликнете върху СпестяванияРазделът „Авторизация“ изглежда така.

Раздел за оторизация на екрана за глобална сигурност с избрана стратегия, базирана на роли

В текущ Jenkins линкът към тази страница е Управление Jenkins > Сигурност, а самата страница все още е със заглавие Конфигуриране на глобална сигурност със същото падащо меню „Авторизация“.

Видове роли в плъгина за стратегия за роли

След като стратегията, базирана на роли, е активна, плъгинът предлага три отделни обхвата на ролите. Изборът на грешен обхват е най-честата причина, поради която дадено разрешение изглежда няма ефект, така че си струва да знаете какво обхваща всеки един от тях, преди да създадете каквото и да било.

Тип роля Обхват Типична употреба
Глобални роли Цялото Jenkins контролер и те отменят всичко, зададено в ролите на елементите администратор, удостоверена роля само за четене, анонимен
Роли на елементите Задачи, канали и папки, чието пълно име съответства на шаблон на регулярен израз Предоставяне на права за изграждане и конфигуриране на един екип само за собствените му задачи
Агентски роли Създаване на агенти, съответстващи на шаблон Позволяване на екип да свързва или прекъсва връзка със собствените си агенти

Урокът по-долу използва глобална роля за предприемач и роля на елемент за тестерОбърнете внимание на именуването: плъгинът вече извиква втората област на видимост. Роли на елементите, защото обхваща папки и конвейери, както и обикновени задачи. По-старите версии — и екранните снимки по-надолу на тази страница — обозначават същата таблица Роли в проекта.

Как да управлявате потребители и роли в Jenkins

Следват стъпките за управление и разпределяне на роли в Jenkins:

Стъпка 1)

  1. Отиди Управление Jenkins
  2. Изберете Управление и присвояване на роли

Управление Jenkins страница, показваща записа „Управление и присвояване на роли“, добавен от плъгина

Забележка: че Управление и присвояване на роли Опцията ще бъде видима само ако сте инсталирали плъгина за стратегия за роли и сте превключили „Авторизиране“ на „Стратегия, базирана на роли“.

Стъпка 2) Кликнете върху Управление на ролите за добавяне на нови роли въз основа на вашата организация.

Екран „Управление и присвояване на роли“ с опцията „Управление на роли“

Стъпка 3) За да създадете нова роля, наречена „разработчик“,

  1. Въведете „разработчик“ под „роля“.
  2. Кликнете върху „Добавяне“, за да създадете нова роля.
  3. Сега изберете Jenkins потребителските разрешения, които искате да присвоите на ролята „Разработчик“.
  4. Кликнете върху Запазване

Показва се мрежата от квадратчета за отметка, която се появява, е показана по-долу.

Екранът „Управление на роли“ с добавена роля на разработчик и отметнати нейни разрешения

Jenkins Групи с разрешения, които можете да присвоите на роля

Квадратчетата за отметка на екрана „Управление на роли“ са групирани по обект, върху който действа всяко разрешение. Таблицата по-долу обяснява какво контролира всяка група, което значително улеснява предоставянето на минимума, от който екипът действително се нуждае.

Група за разрешения Какво предоставя
цялостен Администриране, Четене и другите права за целия администратор. Прилагайте е пълен контрол, така че го предоставяйте пестеливо.
акредитивни писма Преглед, създаване и актуализиране на съхранени идентификационни данни
Агент Конфигуриране, свързване, прекъсване на връзката и изтриване на агенти за изграждане
Работа Създаване, Отмяна, Конфигуриране, Създаване, Изтриване, Четене, Работно пространство и Преместване на задачи
бягане Изтриване, възпроизвеждане и актуализиране на отделен запис за изграждане
Гледка Създаване, конфигуриране, изтриване и четене на изгледи на таблото за управление
SCM Задействане на компилация от кука за контрол на изходния код

Започвайте всяка нова роля с Общо/Прочетено плюс Работа/ЧетенеБез тези две, влезлият потребител вижда празно табло, дори когато други разрешения са отметнати, което е най-често съобщаваното объркване с този плъгин.

Как да разпределяме роли в Jenkins

Стъпка 1) Сега, след като сте създали роли, нека ги присвоим на конкретни потребители.

  1. Отиди Управление Jenkins
  2. Изберете Управление и присвояване на роли

Екранът „Управление и присвояване на роли“ е отворен, за да стигнете до опцията „Присвояване на роли“

Стъпка 2) Ще добавим новата роля „разработчик“ към потребител „гуру99"

  1. Изберете квадратчето за роля на разработчик
  2. Кликнете върху Запазване

Екран за присвояване на роли с отметнато квадратче за ролята на разработчик за потребителя guru99

Можете да присвоите всяка роля на всеки потребител, според вашите нужди.

Как да създадете роли в проекта в Jenkins

Глобалните роли се прилагат навсякъде. Когато дадено разрешение трябва да се прилага само за един набор от задачи, вместо това създайте роля на проект — обхватът, който плъгинът вече нарича роля на елемент.

Можете да създадете специфични за проекта роли под Роли в проекта.

Стъпка 1) In Jenkins„Управление и разпределяне на роли“

  1. Въведете роля като „тестер“
  2. Добавете шаблон към това чрез добавяне тестер.*, така че на всяко потребителско име, започващо с „тестер“, ще бъде присвоена ролята на проекта, която посочите.
  3. Натиснете тук Добави
  4. Изберете привилегии
  5. Кликнете върху Запазване

Попълнената таблица с роли в проекта е показана по-долу.

Таблица с роли на проект с въведена роля на тестер и шаблон с точки и звезди на тестер

Шаблонът е регулярен израз, съпоставен с пълното име на елемента, така че tester.* също съвпада с папка с име пакет за тестване и всичко вътре в него. Тествайте нов модел върху еднократна работа, преди да го приложите на живо проект за фрийстайл или работа по тръбопровода.

Матрично-базирана сигурност срещу ролево-базирана стратегия

Стратегия, базирана на роли, не е единствената опция за оторизация в това падащо меню. Jenkins Доставя се с вградена матрично-базирана сигурност и за малка инсталация това може да е всичко необходимо.

Точка на сравнение Матрично-базирана сигурност Ролева стратегия
Инсталация Вграден в Jenkins Необходим е плъгинът Role-based Authorization Strategy
Единица за присвояване На всеки потребител или група се предоставят разрешения директно Разрешенията принадлежат на посочена роля, а потребителите са прикачени към ролята.
Добавяне на десетия потребител Целият ред за разрешения се повтаря ръчно Отбележете едно квадратче за роля
Контрол на всяка задача Матрична оторизация, базирана на проект, конфигурирана задача по задача Една роля на елемент с шаблон покрива всяка съответстваща задача
Най-добро пасване Няколко потребители с почти идентичен достъп Няколко екипа, много работни места, достъп, който се променя с преместването на хората

Емпиричното правило е броят пъти, в които дадено разрешение се повтаря. След като един и същ шаблон за отметки бъде въведен за трети потребител, поддържането на дадена роля е по-евтино – същият аргумент, който тласка екипите от ad-hoc задачи към преразглеждани. CI/CD тръбопровод.

Въпроси и Отговори

Две неща трябва да са верни. Плъгинът „Стратегия за оторизация, базирана на роли“ трябва да е инсталиран и „Оторизация“ на екрана за сигурност трябва да е настроена на „Стратегия, базирана на роли“. Записът остава скрит, докато не бъде запазена втората стъпка.

Спиране Jenkins, отворен config.xml в JENKINS_HOME и заменете authorizationStrategy елемент с <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>, след което рестартирайте. Винаги дръжте един акаунт с общи/административни права, за да избегнете нуждата от това.

Да. Екранът „Присвояване на роли“ приема имена на групи, както и потребителски имена, така че LDAP или Active Directory група може да бъде прикачена към роля веднъж и след това членството да се обработва изцяло в директорията.

Инструментите за машинно обучение сравняват предоставените разрешения с това, което всеки акаунт действително използва, и маркират неизползваните, което разкрива свръхпривилегированите роли много по-бързо, отколкото четенето на матрица на разрешенията на ръка.

Копилот на GitHub пише Groovy или REST извиквания, които създават роли групово и изготвят шаблонни изрази за роли на елементи. Revпреглеждайте всичко, което произвежда, преди да се изпълни, защото грешен модел тихомълком разширява достъпа.

Сметките се намират под JENKINS_HOME/users, една папка на потребител с config.xml вътре. Ролите и техните разрешения се намират в основния JENKINS_HOME/config.xml, така че архивирането на тази папка запазва и двете.

Изтрийте акаунта от списъка с потребители, което премахва данните за вход, но не и историята на изграждането му. За да отмените достъпа, без да изтривате нищо, премахнете отметката от квадратчето за ролята за този потребител на екрана „Присвояване на роли“ и запазете промяната.

Да. Групата с разрешения „Удостоверения“ на екрана „Управление на роли“ обхваща преглед, създаване и актуализиране на съхранени тайни, така че на дадена роля може да бъде разрешено да изпълнява задача, като същевременно ѝ бъде блокирано четенето на използваните от нея идентификационни данни.

Обобщете тази публикация с: