[英]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.