Можно ли получить пароль Jenkins в сборке

Я не уверен, если это уже спрашивалось / обсуждалось ранее.

В моем Jenkins я настроил аутентификацию LDAP, и этот пароль требуется в одном из моих заданий для удаленного входа на другой сервер с использованием этого пароля и выполнения там некоторых задач

Предположим, что удаленная задача выполняется через sshexec в ant task, для которой требуется пароль пользователя. Я не хочу, чтобы пользователь снова вводил пароль в виде параметра сборки, есть ли способ получить пароль, используемый для аутентификации Jenkins, внутри задания сборки???

2 ответа

Решение

[I] есть ли способ получить пароль, используемый для аутентификации Jenkins, в задании на сборку?

Не как таковой. Jenkins не сохраняет пароль после входа в систему, он просто передает его на сервер LDAP достаточно долго, чтобы убедиться, что вы должны пройти аутентификацию.

Так что вам нужно определить учетные данные, сохраняемые в Jenkins, которые можно использовать во время сборки. Вы можете использовать плагин Credentials Binding для установки фиксированного имени пользователя / пароля, к которому у задания будет доступ.

Если вы требуете, чтобы учетные данные были недоступны для какой-либо сборки задания, но вместо этого пользователь, инициирующий сборку, должен будет предоставить их (это означает, что запланированные или иным образом инициированные сборки невозможны), я думаю, это также поддерживается с версии 1.1. Определите параметр типа учетных данных для задания, который будет использоваться посредством расширения переменной в привязке. Затем попросите пользователя определить эти учетные данные на своей странице конфигурации пользователя (/me/configure). Затем при выборе " Построить с параметрами" они должны увидеть свои личные учетные данные и иметь возможность выбрать их. Пользователю необходимо разрешение Credentials/UseOwn на задание.

Другим вариантом на будущее будет подтип учетных данных имени пользователя / пароля, который вообще не хранит пароль (может быть, просто "соленый" хеш, с использованием jBCrypt) и каким-то образом предлагает ввести пароль, прежде чем учетные данные будут считаться действительными вероятно истекает через несколько минут. Этот режим не был реализован, но был бы полезен для сайтов с более строгими требованиями безопасности.

(Обычные учетные данные хранятся в зашифрованном виде, но механизм безопасного хранения по умолчанию сохраняет главный ключ шифрования в $JENKINS_HOME - настолько безопасны, что вы не разрешаете доступ оболочки к вашему серверу всем, кто еще не является администратором Jenkins, и, конечно, при условии, что на главном компьютере настроено отсутствие исполнителей, чтобы пользователи не могли запускать сборки на нем, только на рабы. Другой RFE - это альтернативный механизм хранения, который позволяет вводить мастер-ключ другими способами.)

Лучший возможный способ - разрешить пользователю jenkins доступ на удаленном сервере.

Другие вопросы по тегам