Самл — Безопасный упор на разметку Язык Используется для федеративной аутентификации, когда какой-то сервис, который нам нужно получить доступ к (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 можно настроить двумя способами:
- Используя собственную заявку OkaTa — меньше работы для конфигурации, но не имеет возможности передавать группы пользователя в Дженкинс, будут покрыты в Окта сообщество создало jenkins saml приложение часть этого поста
- или путем создания собственного приложения на основе 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 на основе ролей безопасности
Двигайся вперед немного (добавит еще один пост о конфигурации плагинов на основе ролей) — пример на основе ролей безопасности и групп в Дженкинах.
Пользователь в Октаке и его группах:
Роли в Дженкинс:
И Группа Дежол с Тест назначенный:
Сделанный.
Полезные ссылки
- Как я могу настроить Okta в качестве провайдера личности в Дженкинс?
- Как работает SAML аутентификация
Похожие посты.
- 09/30/2019 Окта: SSO аутентификация для Gmail и Slack
- 02/09/2017 Azure: Подключение дополнительного диска к ВМ и МИГРАЦИЯ Дженкинс
- 04/16/2019 Jenkins: работа, чтобы проверить список публичных репозиториев организации GitHub
Оригинал: «https://dev.to/setevoy/jenkins-saml-authentication-via-okta-and-users-groups-2koh»