В августе 2021 года популярный сервер автоматизации Jenkins значительно усилил безопасность, удалив поддержку аутентификации по паролю. Этот шаг направлен на улучшение общего состояния безопасности экземпляров Jenkins и поощрение пользователей к использованию более безопасных методов аутентификации. В этой статье мы рассмотрим несколько альтернативных методов аутентификации, которые заменят аутентификацию на основе пароля в Jenkins. Мы предоставим примеры кода для каждого метода, чтобы помочь вам эффективно их реализовать.
- Аутентификация по ключу SSH.
Аутентификация по ключу SSH предлагает безопасный и удобный способ аутентификации с помощью Jenkins. Чтобы настроить его, выполните следующие действия:
Шаг 1. Создайте пару ключей SSH:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Шаг 2. Добавьте открытый ключ в Jenkins:
- Перейдите на панель управления Jenkins >Управление Jenkins >Управление учетными данными.
- В разделе «Хранилища, привязанные к Jenkins», нажмите «Jenkins», а затем «Глобальные учетные данные».
- Добавьте свой открытый ключ в качестве нового имени пользователя SSH с учетными данными закрытого ключа.
Шаг 3. Настройте проекты Jenkins для использования аутентификации SSH:
- Перейти на страницу конфигурации проекта.
- В разделе «Среда сборки» выберите «Агент SSH» и выберите ранее добавленные учетные данные SSH.
- Интеграция единого входа (SSO):
Jenkins поддерживает различных поставщиков единого входа, таких как LDAP, Active Directory, OAuth и других. Вот пример интеграции Jenkins с LDAP:
Шаг 1. Установите плагин LDAP:
- Перейдите на панель управления Jenkins >Управление Jenkins >Управление плагинами.
- Перейдите на вкладку «Доступно» и найдите «LDAP».
- Установите плагин «LDAP» и перезапустите Jenkins.
Шаг 2. Настройте параметры LDAP:
- Перейдите на панель управления Jenkins >Управление Jenkins >Настройка глобальной безопасности.
- В разделе «Область безопасности» выберите «LDAP» и укажите необходимые сведения о сервере LDAP.
- Аутентификация по токену API:
Jenkins предоставляет токены API, которые можно использовать для аутентификации. Аутентификация по токену API подходит для автоматизации сценариев и программного взаимодействия с Jenkins. Вот пример аутентификации с помощью токена API:
Шаг 1. Создайте токен API:
- Перейдите на панель инструментов Jenkins >Люди >Ваш профиль.
- В разделе «Токен API» нажмите «Добавить новый токен» и сгенерируйте токен.
Шаг 2. Аутентификация с использованием токена API:
$ curl -u username:apiToken https://jenkins.example.com/api/json
- Аутентификация на основе плагинов.
Jenkins имеет различные плагины аутентификации, которые расширяют его возможности аутентификации. Некоторые популярные плагины включают аутентификацию GitHub, учетные данные Google OAuth и SAML.
Шаг 1. Установите нужный плагин аутентификации:
- Перейдите на панель управления Jenkins >Управление Jenkins >Управление плагинами.
- Перейдите на вкладку «Доступно» и найдите нужный плагин аутентификации.
- Установите плагин и перезапустите Jenkins.
Шаг 2. Настройте параметры плагина:
- Перейдите на панель управления Jenkins >Управление Jenkins >Настройка глобальной безопасности.
- В разделе «Область безопасности» или «Авторизация» настройте параметры плагина.
После удаления аутентификации по паролю в Jenkins крайне важно использовать альтернативные методы аутентификации для обеспечения безопасности вашей среды Jenkins. В этой статье мы рассмотрели аутентификацию по ключу SSH, интеграцию единого входа, аутентификацию по токену API и аутентификацию на основе плагинов. Внедрив эти методы, вы можете повысить безопасность Jenkins и снизить риски, связанные с аутентификацией на основе пароля.
Помните, что каждый метод аутентификации имеет свои преимущества и особенности, поэтому выберите тот, который лучше всего соответствует вашему конкретному случаю использования и требованиям безопасности. Активно внедряйте механизмы безопасной аутентификации для защиты вашей инфраструктуры Jenkins.