Рубрики
Uncategorized

Jenkins: SAML Аутентификация с ОКТТы и группами пользователей

SAML — Безопасная Утверждение Язык разметки Утверждения, используемый для Федеративной аутентификации, когда какой-то сервис, который мы … помечены DevOps, Jenkins, Безопасность.

СамлБезопасный упор на разметку Язык Используется для федеративной аутентификации, когда какой-то сервис, который нам нужно получить доступ к (A поставщику услуг ), запрашивает другую услугу (An поставщик идентичности ) для выполнения аутентификации пользователя.

Проверьте документацию Здесь >>> Отказ

  • Поставщик услуг ( SP ): это система, где нужно аутентифицировать, в нашем случае это будет Дженкинс
  • Провайдер идентичности ( IDP ) : это система, в которой хранятся пользователи и которые будут выполнять именно шаги аутентификации, в нашем случае это будет ОКТТА

Их связь и шаги во время аутентификации могут отображаться в следующей схеме:

Здесь:

  • SAML-запрос : или запрос аутентификации, созданный SP, чтобы запросить аутентификацию пользователя
  • Самл ответ : будет создан IDP и содержит данные о уже аутентифицированном пользователе и могут включать в себя дополнительную информацию, такой как группы пользователя, и так далее

Кроме того, имейте в виду, что SAML-аутентификация может быть двумя типами:

  • Поставщик услуг инициировал (SP-инициированный) : Сервис, Jenkins в этом случае выполняет инициализацию к провайдеру IDP, когда пользователь пытается войти в экземпляр Jenkins
  • Поставщик удостоверений инициировал (IDP-инициированный) : и vise versa — когда пользователь Okta нажимает на кнопку, чтобы войти в jenkins — IDP, инициализирует запрос на jenkins (sp) для аутентификации этого пользователя

В этом посте в основном будет говорить о Поставщик услуг инициирован, Но все же, Поставщик удостоверений инициировал Буду работать также.

Кроме того, имейте в виду, что SP и IDP никогда не будут говорить непосредственно друг другу — браузер пользователя будет действовать как «прокси» между ними.

Роль поставщика услуг

IDP генерирует ответ SAML для SP, а затем SP должен проверить, был ли этот ответ был получен от действительного IDP, а затем проанализирует этот ответ, чтобы получить необходимые данные — имя пользователя, группы и другие атрибуты.

Для этого SP нужно получить следующую информацию с IDP:

  • Общественный сертификат IDP
  • ACS конечная точка ( Утверждение потребительского обслуживания URL ) или просто «url-url rel rel» — конечный URL, переданный SP на IDP для получения SAML ответов
  • IDP вход URL — конечная точка IDP, где SP отправит свои запросы SAML

Дженкинс Самл для Октаки

Основная цель в интеграции SAML в Дженкинс:

  • Магазин пользователей в Октаке
  • Пользователи Okta сгруппированы на группы
  • Jenkins будет использовать плагин на основе ролей стратегии, который будет иметь роли доступа, назначенные различным группам

В ОКТТУ Jenkins SAML можно настроить двумя способами:

  1. Используя собственную заявку OkaTa — меньше работы для конфигурации, но не имеет возможности передавать группы пользователя в Дженкинс, будут покрыты в Окта сообщество создало jenkins saml приложение часть этого поста
  2. или путем создания собственного приложения на основе SAML в ОКТТ, который будет иметь пользовательский атрибут с групповой группой пользователей, будет рассмотрена в Окта и собственное приложение для Jenkins Saml часть этого поста

С первым способом вы не сможете использовать Ролевая стратегия плагин Но все же можно использовать Matrix на основе безопасности или Стратегия авторизации матрицы плагины:

Конфигурация плагина на основе ролей будет описана в следующих частях, и теперь в посте увидит, как настроить OKTA и SAML для Jenkins на обоих способах, упомянутых выше.

ОКТА родное jenkins Saml приложение

Конфигурация ОКТА

Перейти к Окта> Добавить приложение, Найти плагин jenkins saml:

Установите URL Jenkins:

Переключиться на Войти на Вкладка:

Нажмите на Просмотр инструкций по настройке — Okta уже есть все данные, сгенерированные здесь, которые будут использоваться нашим SP (Jenkins):

Перейти к Назначение Вкладка и добавьте приложение Jenkins SAML к желаемому пользователей Okta:

Перейдите к своим jenkins.

Конфигурация SAML в Дженкинс

Установите Saml Plugin :

Перейти к Настройте глобальную безопасность Переключите царство аутентификации из Собственная пользовательская база jenkins к Самл :

Вернитесь в Октаку и страницу метаданных, скопируйте IDP метаданные содержание:

Вставьте в настройки SAML Jenkins ‘:

Вернитесь к вашей Okta, скопируйте ссылку на Метаданные поставщики идентичности :

Установите его в Дженкинс в IDP метаданные URL поле:

Отображать атрибут имени и Атрибут группы оставить как есть.

Проверьте это сейчас: откройте свой URL Jenkins — вы должны быть перенаправлены в Октану:

Войдите в систему, все сделано здесь.

Окта и собственное заявление на Jenkins SAML

Теперь давайте добавим новое приложение в ОКТТ, которая сможет передать группу пользователя в Jenkins, например — A Дежол группа:

Конфигурация ОКТА

Создайте новое приложение:

Установите его имя, значок:

Далее, в Один знак на URL и Аудитория URI (идентификатор SP ID) Установить ACS конечная точкаhttp://dev.ci.example.com/securityRealm/finishLogin :

Передать группы пользователей из Октан в Дженкинс добавьте новое поле в Выступления атрибутов группы (необязательно) :

  • Имя : Группа
  • Формат имени : Базовый
  • ФильтрМатчи Regex и ценность как. * Чтобы подать заявку на все группы Окта

На следующей странице набор Я клиент Okta добавив внутреннее приложение и Готово Отказ

Не забывайте о Назначения Отказ

Теперь так же, как мы ранее, нажмите на Просмотр инструкций по настройке Скопируйте IDP_ Metadata_ и обновите Настройте глобальную безопасность Настройки в Дженкинсах.

Скопируйте ссылку на Метаданные поставщики идентичности :

Конфигурация SAML в Дженкинс

Установите эту ссылку на IDP метаданные URL Подано в Дженкинс:

В Дженкинс меняют Group Attribute’_s Значение от _ http://schemas.xmlsoap.org/claims/group просто » Группа» :

На самом деле, это все люди.

Jenkins на основе ролей безопасности

Двигайся вперед немного (добавит еще один пост о конфигурации плагинов на основе ролей) — пример на основе ролей безопасности и групп в Дженкинах.

Пользователь в Октаке и его группах:

Роли в Дженкинс:

И Группа Дежол с Тест назначенный:

Сделанный.

Полезные ссылки

Похожие посты.

Оригинал: «https://dev.to/setevoy/jenkins-saml-authentication-via-okta-and-users-groups-2koh»