Ошибка аутентификации Jenkins Github: пользователю не хватает общего разрешения на чтение
Я использую плагин github oauth для наших входов в систему, но для всех наших пользователей в Организации я получаю сообщение об ошибке:
Access Denied
<user> is missing the Overall/Read permission
Я перепробовал все, что только мог придумать, чтобы попытаться сделать эту работу, и я, вероятно, отступлю, чтобы сделать всех пользователей администраторами, чего я бы предпочел не делать.
Любой совет будет оценен.
22 ответа
Вот как я решил проблему аутентификации:
редактировать
config.xml
файл, напримерsudo vi /var/lib/jenkins/config.xml
+ Изменить
useSecurity
значение элемента вfalse
например,<useSecurity>false</useSecurity>
Удалить
authorizationStrategy
блок
Перезапустите Дженкинс:
/etc/init.d/jenkins restart
,- Получите доступ к Jenkins через URL как обычно и заново настройте параметры безопасности.
У меня была такая же проблема с "... отсутствует разрешение на чтение / чтение" на Jenkins (1.651.2) с активированным плагином Credentials.
Но это была моя собственная ошибка: я только настраивал пользователя на стороне проекта (с помощью плагина учетных данных), но пропустил настройку глобальной безопасности.
Поэтому я исправил это, выбрав:
Jenkins -> Управление Jenkins -> Настройка глобальной безопасности
И установил недостающие глобальные настройки (или основанные на матрице проекта)
Вы следили за этим шагом со страницы плагина?
Control user authorization (i.e. who is allowed to see the jobs and build them) using the Github Commiter Authorization Strategy
Кроме того, убедитесь, что вы действительно разрешаете аутентифицированным пользователям доступ к Jenkins.
- В глобальной конфигурации Jenkins, под Авторизацией, добавьте пользователя / группу с именем
authenticated
- Дайте этой группе Общее разрешение на чтение
- Группа должна отображаться со значком "группа" (два пользователя), в отличие от однопользовательского значка.
Сбросить с <useSecurity>true</useSecurity>
в <useSecurity>false</useSecurity>
в config.xml и снова установите разрешение.
Когда я получил эту ошибку, я отредактировал файл config.xml, о котором упоминали другие пользователи, и правильно добавил свое имя пользователя в LOWERCASE на странице Jenkins "configureSecurity". Я использовал "KrustyHack" при добавлении разрешений, но это не сработало. Вместо этого мне пришлось добавить "krustyhack", и это сработало.
Я надеюсь, что это помогает.
Отредактируйте файл /var/lib/jenkins/config.xml и добавьте следующие строки:
<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
<permission>hudson.model.Hudson.Read:john.smith</permission>
</authorizationStrategy>
Перезапустите Дженкинс
Также проверьте имена пользователей дела в authorizationStrategy
элемент. Я сделал имя моего нового пользователя строчными и перезапустил сервис, и ошибка исчезла.
- Перейдите к $JENKINS_HOME (linux, jenkins в windows) и найдите файл config.xml.
- Откройте этот файл в редакторе. (возьмите резервную копию.jenkins домой)
- Ищите
<useSecurity>true</useSecurity>
элемент в этом файле. - Заменить "истина" на "ложь"
- Удалить элементы
authorizationStrategy
а такжеsecurityRealm
- Начать Дженкинс
Исправьте это с помощью этих 2 команд оболочки на сервере (требуется разрешение sudo):
sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart
Это удалит useSecurity
а также authorizationStrategy
строки из вашего конфигурационного файла.
Смотрите также: Отключить защиту на сайте Jenkins
У меня была такая же проблема, но она затронула только некоторых пользователей, а не всех. В любом случае, вы должны проверить членство в общественной организации: в документации к плагину говорится, что "вы должны быть публичным членом организации, чтобы авторизация работала правильно". ( https://wiki.jenkins-ci.org/display/JENKINS/Github+OAuth+Plugin).
Следуйте инструкциям GitHub ( https://help.github.com/articles/publicizing-or-hiding-organization-membership/), чтобы сделать членство в организации общедоступным, и это может решить вашу проблему.
Мы столкнулись с этой же ошибкой, когда администратор github-организации изменил настройки организации на "Сторонний доступ" на "Ограничить доступ сторонних приложений". Возврат к предыдущим настройкам в организации github решил проблему.
Посмотрите github oauth-app-access-ограничения для деталей о том, как правильно настроить это.
Назначение ролей пользователям хранится в config.xml
файл. Добавьте идентификатор пользователя непосредственно в роль и перезапустите Jenkins.
В моем случае у меня есть роль с именем editor
и группа пользователей, назначенных на роль.
<role name="editor" pattern=".*">
<permissions>
<...>
<permission>hudson.model.Item.Create</permission>
<permission>hudson.model.Item.Workspace</permission>
<permission>...</permission>
</permissions>
<assignedSIDs>
<sid>bob</sid>
<sid>alice</sid>
<sid>**newuser**</sid>
</assignedSIDs>
</role>
Безопасность матрицы не очень понятна. Я являюсь членом определенной группы в нашей организации, у которой есть права администратора, но я также являюсь аутентифицированным пользователем. Я бы подумал, что одна группа заменяет другую, однако мне нужно иметь и то, и другое, чтобы фактически войти в систему и быть администратором. Это облажалось ИМО.
Я использую плагин Crowd 2, и у меня та же проблема. Я исправил это, опустив плагин OWASP Markup Formatter с версии 1.2 до версии 1.1, а затем изменив разметку Formatter в настройке глобальной безопасности на Raw HTML, до того, как он стал обычным текстом.
У меня была точно такая же проблема, и добавление плагина Role Strategy Plugin устранило проблему.
Все, что мне нужно было сделать, это установить плагин, создать две группы - администратор / разработчик, а затем добавить пользователей в группы.
Гораздо лучшее решение, чем воссоздание всей матрицы разрешений:)
я нашел это в
C:\ProgramData\Jenkins\.jenkins
Версия Дженкинса: 2.319.2
Вместо того, чтобы удалять всю безопасность (верхний ответ), добавьте доступ администратора как root пользователю, которому вы хотите предоставить администратора. У нас была та же проблема, когда все администраторы больше не были в компании. Вот как я решил проблему аутентификации: я вошел в систему:
jenkins@<jenkins server>:/var/lib/jenkins/
Отредактируйте файл config.xml и добавьте конфигурацию для
<permission>hudson.model.Hudson.Administer:<username></permission>
Затем перезапустите Дженкинс:
root@<jenkins server>:/$ /etc/init.d/jenkins restart
У меня была такая же проблема раньше, ваше приложение OAuth должно быть одобрено владельцем вашей организации, тогда плагин OAuth может получить доступ к закрытым данным в нем
У меня была похожая проблема, я не смог получить доступ к учетной записи Jenkin, и система была заблокирована. У меня было только сообщение об ошибке. "Доступ закрыт "
Когда я попытался переустановить Jenkins, он предложил вариант "Восстановить". Нажав кнопку "Восстановить", вы устранили проблему.
Просто используйте Jenkins > Настроить матрицу нижней страницы Global Security, чтобы предоставить разрешения пользователю (начните с чтения)
Я отредактировал файл /var/lib/jenkins/config.xml и заменил
<authorizationStrategy>...</authorizationStrategy>
с
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
Это настройки по умолчанию после установки. Затем перезапустите сервис Дженкинс.