繁体   English   中英

Github Jenkins Webhook安全问题

[英]Github Jenkins webhook security problems

我已经使用Github Jenkins webhook一段时间了,没有问题。 我的Jenkins在Nginx代理后面运行,并且安装的唯一安全性是nginx htpasswd。 所以我的Github Webhook看起来像这样:

https:// user:pass@jenkins.blablabla.biz/job/script/buildWithParameters

作为用户并通过htpasswd文件传递凭据。

现在,我正在尝试将用户添加到我的Jenkins中,并为其激活了基于矩阵的安全性,并可以选择注册和登录Jenkins。 该服务器在最初要求Nginx凭据和第二个jenkins登录时运行完美。

我在詹金斯创建了一个github用户,并为他生成了一个令牌。 现在,我将Github Webhook更改为使用新的Jenkins github用户凭据:

https:// github:token@jenkins.blablabla.biz/job/script/buildWithParameters

只要我知道这应该工作。 但事实并非如此。 我认为这里的问题是激活了两个安全系统(nginx htpasswd和jenkins登录)。 但是我都想要。

我必须在Webhook中使用这两个凭证吗? 我怎样才能做到这一点?

当我使用nginx凭证时,当触发webhook时,Github会收到jenkins的以下响应:

需要身份验证您被身份验证为:匿名组您所在的组:需要(但没有)权限:hudson.model.Hudson.Read ...隐含:hudson.security.Permission.GenericRead .. 。暗含:hudson.model.Hudson.Administer

当我使用jenkins凭证时,触发webhook时Github会收到jenkins的以下响应:

需要401授权

需要401授权


nginx / 1.11.10

您可以在nginx.conf中为一个网址禁用基本身份验证:

location /github-webhook/ {
  auth_basic            "off";
  ...
}

location / {
  auth_basic            "Restricted";
  auth_basic_user_file  /etc/nginx/.htpasswd;
  ...
}

最终,我决定关闭基于Nginx Http的安全性,仅依靠jenkins安全性。 现在,我的jenkins服务器在任何地方都可见。 为了使用Jenkins令牌根插件,我更改了Github jenkins webhook的格式: https ://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

我没有找到使用两种身份验证方法的方法。 如果有人试图从办公室外访问,则需要额外的通行证(基于HTTP)。

就这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM