Назад | Перейти на главную страницу

Не удалось войти в систему Jenkins с использованием аутентификации GitHub в качестве администратора

Я настраивал механизм аутентификации для нашей организации, jenkins, у которой не было механизма безопасности, "ananoumos" может делать что угодно, удалять задания, строить и т. Д. Я сделал

  1. Установите плагин github-oauth jenkins

  2. В моем https: // github..com / а. OAuthApplication -> создано новое приложение b. предоставил все подробности, главным был обратный вызов авторизации -> http://myserver.example.com:8080/securityRealm/finishLogin myserver.example.com = мой сервер jenkin

  3. Хорошо

  4. Он создал "ClientId" и "Client secret" -> Отметил

  5. Зайдите в Jenkins и настройте «Глобальная безопасность: как упомянуто» Вот

Когда я нажал кнопку «Сохранить» в конфигурации безопасности Jenkin, я обнаружил большую страшную ошибку.

STDERR: hudson.security.AccessDeniedException2: у анонимного отсутствует разрешение Общее / Администрирование в hudson.security.ACL.checkPermission (ACL.java:57)

а затем, когда я щелкнул домашнюю страницу jekins, он попытался перенаправить меня на мой org github, но потерпел неудачу с "404"

Выход в разделе «Ответ»

Вдохновленный Дженкинс: доступ запрещен после включения глобальной безопасности. Как вернуться?:

Поскольку в приведенной выше проблеме они не использовали плагин Github Auth, у моего Jenkins config.xml были другие теги, вот что я сделал:

  1. на моем сервере Jenkins, JENKIN_HOME/config.xml
  2. Сначала под <authorizationStrategy>, установите true для ниже

    authenticatedUserReadPermission
    useRepositoryPermissions
    authenticatedUserCreateJobPermission      
    allowAnonymousReadPermission 
    allowAnonymousJobStatusPermission  
    
  3. Тогда я хотя бы мог просматривать вакансии Дженкинса как «Анонимный» пользователь.

  4. Затем я создал новый Auth в GitHub моей организации -> Мой профиль -> настройка -> «Приложение OAuth» -> Приложение для разработчиков и предоставил аналогичный ввод, в основном URL-адрес обратного вызова авторизации: http://myjenkinsserver:8080/securityRealm/finishLogin

  5. Создан новый идентификатор клиента и секрет

  6. Модифицированный jekins config.xml
  7. перезапустил Дженкинс
  8. попытался войти в Jenkins, на этот раз он перенаправлен на мою организацию GitHub и спрашивает, что Jenkins хочет аутентифицироваться, я «согласен», но получил новую ошибку

    org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://ghe.acme.com/api/v3/user
    
  9. Обнаружено, что этот API неверен,

  10. Модифицированный дженкинс config.xml

    <githubApiUri>https://github.<myorg>.com/api/v3</githubApiUri>
    

и на этот раз сработало :)