Назад |
Перейти на главную страницу
Может ли Дженкинс использовать билет Kerberos пользователя?
Я настраиваю новый сервер Jenkins. Он будет аутентифицировать пользователей в корпоративной AD. Большинство задач, которые мы имеем в виду, требуют входа на другие хосты (через ssh).
Можно ли настроить Jenkins при входе пользователя в систему:
- Получите билет Kerberos (
kinit
). - Сделайте этот билет доступным (в виде файла, расположение, заданное переменной среды) для любого задания Jenkins. управляется этим пользователем - так что доступ к другим хостам все еще можно контролировать через
.k5users
/.k5login
.
Какие дополнения / плагины мне следует искать?
Получить штрафной билет должно быть довольно легко, поскольку именно это Плагин Kerberos SSO делает. Тем не мение...
... маловероятно, что вы сможете получить доступ к ограниченному билету или учетным данным пользователя из вашей работы удовлетворительным образом.
- Во-первых, это было бы огромным риском для безопасности, если бы это было возможно, поскольку, если вы можете создать задание, которое аутентифицируется как произвольный пользователь на удаленном компьютере, тогда вы можете создать задание, которое аутентифицируется как любой произвольного пользователя (у которого уже есть действующий билет ограничения) на удаленный компьютер, что потенциально позволит пользователям писать собственные задания для аутентификации как других пользователей.
- Во-вторых, даже если бы это было технически возможно, это было бы непросто. По моему опыту, бордовый билет хранится локально, на клиентском компьютере, используемом для доступа к веб-интерфейсу, а не на сервере Jenkins. Даже если это не так, Jenkins на самом деле не раскрывает напрямую профиль пользователя, запустившего задание, самому заданию. В конечном итоге все задания Jenkins выполняются агентом Jenkins на главном и подчиненном узлах. Человек или агент, инициировавший работу, - это просто тот, кто запущен работа, а не та Бег Это. Вы, конечно, можете получить информацию о пользователе, запустившем задание, если оно есть - задания также могут запускаться автоматически, например, через задания cron. Но для этого требуется запутанная серия вызовов API из вашего определения задания Jenkins, и я даже не уверен, как перейти от получения имени пользователя, запустившего задание, к его заявке на ограничение. API-интерфейс модуля Kerberos SSO Plugin не публикует ничего, что могло бы показаться хоть сколько-нибудь полезным.
Мне кажется, что вам может понадобиться простой старый сценарий оболочки или что-то подобное, а не работа Дженкинса. Я знаю, что сценарий оболочки не будет иметь всех функций задания Jenkins, но если вы хотите запустить задание с учетными данными текущего пользователя, то сценарий оболочки - гораздо лучший вариант.