【问题标题】:'User is missing the Overall/Read permission' error with Jenkins GitHub OAuth PluginJenkins GitHub OAuth 插件的“用户缺少整体/读取权限”错误
【发布时间】:2022-03-16 01:52:07
【问题描述】:

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

Access Denied

<user> is missing the Overall/Read permission

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

任何建议将不胜感激。

【问题讨论】:

    标签: github jenkins jenkins-plugins


    【解决方案1】:

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

    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 并重新配置安全性。

    【讨论】:

    • 就像在舞池里一样,支持一下:cp -R /var/lib/jenkins /var/lib/BACKUP-jenkins
    • 请注意,问题是关于如何使安全工作,而不是如何在没有安全性的情况下重新启动 Jenkins 才能访问它。
    • 是的,但是,非常感谢,我以为我在意外锁定管理员后丢失了 jenkins 安装
    • 如果我们这样做,所有当前用户都将失去他们的用户名和密码权限,并且必须为所有用户创建一个新密码?如果我只有一个用户的重置权限怎么办?
    • 我们刚刚遇到了类似的问题。它发生在将新用户添加到角色之后。为了解决它,我将 useSecurity 更改为 false,重新启动 Jenkins,然后再次停止 Jenkins 并将参数恢复为 true ......它以某种方式解决了这个问题。很高兴知道是否有人知道 RC 解决此问题以及将来如何预防。
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 是的,我已将我们的组织 Blooie 添加到列表中,但该组织的成员无法登录。他们都得到了上述错误
    • 您是否将authenticated 组设置为拥有权限?我已经更新了答案
    • 好的,所以现在我真的很困惑......你问我是否按照插件页面的步骤进行操作,这就是那个步骤的全部内容:cloudup.com/cfbsnzHGBxA。我正在使用 github 授权策略,我的用户是我们组织的公共成员。现在你在谈论“全局配置”,我假设你的意思是“全局安全配置”cloudup.com/cfFzfQ8bYol我已经进入了全局安全配置中的授权部分,我没有看到任何与组相关的内容:@987654323 @我错过了什么吗?
    • 我假设关于 'authenticated' 组的 cmets 假设您正在使用“基于项目的矩阵授权策略”——听起来你不是:i.imgsafe.org/218e656913.png
    【解决方案3】:

    在激活凭据插件的 Jenkins (1.651.2) 上,我遇到了同样的问题“...缺少整体/读取权限”。

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

    所以我通过选择来修复它:

    Jenkins -> 管理 Jenkins -> 配置全局安全

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

    【讨论】:

    • 谢谢。当我添加新用户时,您的解决方案很棒。我遇到了同样的错误并解决了。
    • 是的,在不影响安全性的情况下,这是正确的答案。谢谢
    【解决方案4】:

    在config.xml中将&lt;useSecurity&gt;true&lt;/useSecurity&gt;重置为&lt;useSecurity&gt;false&lt;/useSecurity&gt;并重新设置权限。

    【讨论】:

    • 我认为这比删除整个 XML 块更简单
    【解决方案5】:

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

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

    重启詹金斯

    【讨论】:

    • 简洁明了。省去关闭和重新打开安全等的麻烦。
    【解决方案6】:

    当我收到此错误时,我所做的是编辑其他用户提到的 config.xml,并在“configureSecurity”Jenkins 页面的 LOWERCASE 中正确地重新添加我的用户名。我在添加权限时使用了“KrustyHack”,但它不起作用。我不得不添加“krustyhack”,它起作用了。

    希望对你有帮助。

    【讨论】:

    • 我在问题中遇到了问题,并以与此答案提到的类似方式修复了它。但是,我直接编辑了配置:sed -i '' -e 's/:Admin/:admin/g' Home/config.xml。更多信息在这里:egeek.me/2015/03/07/…
    【解决方案7】:

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

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

    【讨论】:

      【解决方案8】:

      还要检查authorizationStrategy 元素中的用户名大小写。我将我的新用户名设置为小写,然后重新启动服务,错误就消失了。

      【讨论】:

      • 我的用户收到 FRED@mycompany.com 的错误,即缺少整体/读取权限。我的 jenkins 矩阵中有该用户为 fred@mycompany.com。一旦我将 FRED@mycompany.com 添加到 Jenkins 矩阵中,该用户就可以正常登录了。
      【解决方案9】:

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

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

      这将从您的配置文件中删除 useSecurity 和 authorizationStrategy 行。

      另请参阅:Disable security Jenkins 网站

      【讨论】:

        【解决方案10】:

        当 github 组织管理员将组织的“第三方访问”设置更改为“限制第三方应用程序访问”时,我们遇到了同样的错误。在 github 组织中恢复到以前的设置解决了这个问题。

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

        【讨论】:

          【解决方案11】:

          为用户分配的角色存储在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】:

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

            【讨论】:

              【解决方案13】:
              • 转到 $JENKINS_HOME(linux,windows 中的 jenkins),找到 config.xml 文件。
              • 在编辑器中打开此文件。 (备份 .jenkins 回家)
              • 在此文件中查找 &lt;useSecurity&gt;true&lt;/useSecurity&gt; 元素。
              • 将“真”替换为“假”
              • 删除元素authorizationStrategy 和securityRealm
              • 启动 Jenkins

              【讨论】:

              • 很好,尼日利亚王子。
              【解决方案14】:

              转到your-jenkins-host:port/role-strategy/assign-roles 并为用户配置角色

              【讨论】:

                【解决方案15】:

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

                【讨论】:

                  【解决方案16】:

                  我正在使用 Crowd 2 插件,但我遇到了同样的问题。 我通过将 OWASP Markup Formatter Plugin 从 varsion 1.2 降级到 1.1 版本来修复它,然后将 Configure Global Security 值中的 Markup Formatter 更改为 Raw HTML,然后是纯文本。

                  【讨论】:

                    【解决方案17】:

                    我遇到了完全相同的问题,添加插件角色策略插件解决了这个问题。

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

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

                    【讨论】:

                      【解决方案18】:

                      我遇到了类似的问题,我无法访问 Jenkins 帐户并且系统被锁定。 我只有一条错误消息。 “拒绝访问”

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

                      【讨论】:

                        【解决方案19】:

                        我在 C:\ProgramData\Jenkins\.jenkins

                        Jenkins 版本:2.319.2

                        【讨论】:

                          【解决方案20】:

                          只需使用 Jenkins > 配置全局安全底部页面矩阵以向用户提供权限(启动 w/读取)

                          【讨论】:

                          • 我无法访问,系统被锁定,我只能看到这个错误消息。
                          【解决方案21】:

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

                          <authorizationStrategy>...</authorizationStrategy> 
                          

                          与

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

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

                          【讨论】:

                            猜你喜欢
                            • 2018-12-04
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2014-12-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多