簡體   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