Jenkins Github身份验证错误:用户缺少整体/读取权限

时间:2014-03-28 16:03:35

标签: github jenkins jenkins-plugins

我使用github oauth plugin进行登录,但对于组织中的所有用户,我收到了错误消息:

Access Denied

<user> is missing the Overall/Read permission

我已经尝试了一切我可能想到的尝试来完成这项工作,并且我可能会回避让每个人都成为管理员用户,我不想这样做。

任何建议将不胜感激。

19 个答案:

答案 0 :(得分:63)

这就是我解决身份验证问题的方法:

  1. 编辑config.xml文件,例如

    sudo vi /var/lib/jenkins/config.xml
    
    1. useSecurity元素的值更改为false,例如

      <useSecurity>false</useSecurity>
      
    2. 删除authorizationStrategy阻止

  2. 重新启动Jenkins:/etc/init.d/jenkins restart

  3. 像往常一样通过URL访问Jenkins并再次重新配置安全性。

答案 1 :(得分:13)

您是否已从插件页面执行此步骤?

Control user authorization (i.e. who is allowed to see the jobs and build them) using the Github Commiter Authorization Strategy

此外,请确保您实际允许经过身份验证的用户访问Jenkins

  • 在Jenkins全局配置下,在“授权”下,添加名为authenticated
  • 的用户/组
  • 授予该组整体阅读权限
  • 该组应显示“组”图标(两个用户),而不是单个用户图标。

答案 2 :(得分:8)

我遇到同样的问题&#34; ...缺少整体/阅读权限&#34;在Jenkins(1.651.2)上激活了Credentials插件。

但这是我自己的失败:我只在项目方面(通过凭据插件)配置了用户,但却错过了配置全局安全性。

所以我通过选择:

来修复它
  

詹金斯 - &gt;管理Jenkins - &gt;配置全局安全性

并设置了缺少全局设置(或基于项目矩阵的设置)

答案 3 :(得分:7)

在config.xml中从<useSecurity>true</useSecurity>重置为<useSecurity>false</useSecurity>并再次设置权限。

答案 4 :(得分:4)

编辑文件/var/lib/jenkins/config.xml并添加以下行:

  <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Hudson.Read:john.smith</permission>
  </authorizationStrategy> 

重新启动Jenkins

答案 5 :(得分:3)

  • 转到$ JENKINS_HOME(windows中的linux,jenkins),找到config.xml文件。
  • 在编辑器中打开此文件。 (备份.jenkins主页)
  • 在此文件中查找<useSecurity>true</useSecurity>元素。
  • 替换&#34; true&#34;与&#34; false&#34;
  • 删除元素authorizationStrategysecurityRealm
  • 启动Jenkins

答案 6 :(得分:3)

我在这里遇到了同样的问题,但它只影响了一些用户,而不是所有用户。无论如何,您应该检查公共组织成员身份:插件的文档说明“您必须是组织的公共成员才能使授权正常工作”。 (https://wiki.jenkins-ci.org/display/JENKINS/Github+OAuth+Plugin)。

按照GitHub(https://help.github.com/articles/publicizing-or-hiding-organization-membership/)的说明,将组织成员资格公开,这可能会解决您的问题。

答案 7 :(得分:3)

同时检查authorizationStrategy元素中的案例用户名。我将新用户的名字设为小写并重新启动了服务,错误就消失了。

答案 8 :(得分:3)

我收到此错误时所做的是编辑其他用户提及的config.xml,并正确地在LOWERCASE中重新添加我的用户名&#34; configureSecurity&#34;詹金斯&#39;页。我正在使用&#34; KrustyHack&#34;添加权限但它没有工作。我不得不添加&#34; krustyhack&#34;相反,它有效。

我希望它有所帮助。

答案 9 :(得分:3)

通过服务器上的这两个shell命令修复它(需要sudo权限):

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

这会从配置文件中删除useSecurityauthorizationStrategy行。

另请参阅:Jenkins网站上的Disable security

答案 10 :(得分:2)

当github组织管理员更改了组织的&#34;第三方访问&#34;的设置时,我们遇到了同样的错误。到&#34;限制第三方应用程序访问&#34;。恢复到github组织中的先前设置解决了问题。

有关如何正确配置的详细信息,请参阅github oauth-app-access-restrictions

答案 11 :(得分:1)

为用户分配角色存储在config.xml文件中。将用户的ID直接添加到角色,然后重新启动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>

答案 12 :(得分:1)

矩阵安全性并不十分清楚。我是我们组织中具有管理员权限的特定组的成员,但我也是经过身份验证的用户。我认为一组超级另一组,但我必须同时拥有两个才能实际登录系统并成为管理员。它搞砸了IMO。

答案 13 :(得分:0)

我有完全相同的问题,添加插件角色策略插件修复了问题。

我所要做的就是安装插件,创建两个组 - 管理员/开发人员,然后将用户添加到组中。

比重新创建整个权限矩阵要好得多的解决方案:)

答案 14 :(得分:0)

我正在使用Crowd 2插件,我遇到了同样的问题。 我通过将OWASP标记格式化程序插件从varsion 1.2降级到1.1版,然后将配置全局安全性值中的标记格式化程序更改为原始HTML,然后将其更改为纯文本来修复它。

答案 15 :(得分:0)

我有一个类似的问题,我无法访问Jenkin帐户,系统被锁定。  我只有一条错误消息。 &#34;访问被拒绝&#34;

当我尝试重新安装Jenkins时,它会提示修复选项。 通过单击修复选项,它修复了问题。

答案 16 :(得分:0)

之前我遇到过同样的问题, 您的OAuth应用程序需要您的组织所有者的批准, 然后OAuth插件可以访问其中的私人数据

答案 17 :(得分:-1)

我编辑了/var/lib/jenkins/config.xml文件并替换了

<authorizationStrategy>...</authorizationStrategy> 

<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>

这是安装后的默认设置。然后重启jenkins服务。

答案 18 :(得分:-2)

只需使用Jenkins&gt;配置全局安全性底部页面矩阵以向用户提供权限(启动w / read)