1. 程式人生 > >Jenkins許可權設計錯誤解決辦法

Jenkins許可權設計錯誤解決辦法

https://www.cnblogs.com/yangxia-test/p/4368778.html

https://blog.csdn.net/xlyrh/article/details/51384837       Jenkins的授權和訪問控制

報錯:

提示hudson.security.AccessDeniedException

解決:

修改Jenkins_home/config.xml檔案


<useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured
"/> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>true</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> 重新啟動Jenkins (必須) Jenkins學習七:Jenkins的授權和訪問控制 預設的Jenkins不包含任何的安全檢查,任何人可以修改Jenkins設定,job和啟動build等。顯然地在大規模的公司需要多個部門一起協調工作的時候,沒有任何安全檢查會帶來很多的問題。 在系統管理-Configure Global Security頁面可以“訪問控制”進行相應的設定。如下圖: Jenkins的許可權配置檔案存放在JENKINS_HOME目錄。進入JENKINS_HOME目錄,找到config.xml檔案。開啟config.xml,裡面有一堆的東西,找找。。。找到了
<useSecurity>和<authorizationStrategy>節點。<useSecurity>節點代表是否使用使用者許可權,<authorizationStrategy>節點代表使用者許可權是怎麼劃分的。 1) Security Realm,用來決定使用者名稱和密碼,且指定使用者屬於哪個組; 2) Authorization Strategy,用來決定使用者對那些資源有訪問許可權; 一、詳細講解4種授權策略 1、任何使用者可以做任何事(沒有任何限制) 1)頁面設定如下圖: 2)config.xml指令碼如下: <useSecurity>true
</useSecurity> <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>true</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> 2、登入使用者可以做任何事 1)頁面設定如下圖: 2)config.xml指令碼如下: <useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> 3、安全矩陣 1)頁面設定如下圖: 2)config.xml指令碼如下: <useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy"> <permission>hudson.model.Hudson.Administer:jenkins</permission> <permission>hudson.model.Hudson.Read:anonymous</permission> <permission>hudson.model.Hudson.Read:dev</permission> <permission>hudson.model.Item.Build:dev</permission> <permission>hudson.model.Item.Read:anonymous</permission> <permission>hudson.model.Item.Read:dev</permission> </authorizationStrategy> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> 設定好許可權之後,點選註冊,註冊相應的賬號,如上圖的dev,jenkins。 4、專案矩陣授權策略 說明:安全矩陣和專案矩陣授權策略的配置是一模一樣的,唯一的區別是專案矩陣授權策略支援在Job的配置頁面再次配置授權策略。 這種策略在工作中用得較多,比如針對不同的專案選擇不同的使用者具有不同許可權。 1)頁面設定如下圖: 各種許可權如下(在配置頁面將滑鼠放到該許可權上即可檢視幫助): 其中有一些比較特別的許可權: 最大的許可權是Overall的Administer,擁有該許可權可以幹任何事情。 最基本的許可權是Overall的Read,使用者必須賦予閱讀的許可權,不然什麼都看不到。 Job的Discover許可權是一個奇葩的許可權,幫助說Discover比Read的級別更低。如果匿名使用者(沒有訪問job的許可權)直接訪問一個Job的Url將重定向到登陸頁面。(經測試,這個許可權應該是被廢棄了。) Credentials的ManageDomains這個許可權沒有看懂幹嘛的,有懂的大家一起交流哈! ps:如果有個使用者被賦予了Overall的Read,並沒有被賦予Job的Read許可權,那麼該使用者就無法訪問job。原因:沒有許可權。 2)config.xml指令碼如下: <useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy"> <permission>hudson.model.Hudson.Administer:admin</permission> <permission>hudson.model.Hudson.Read:anonymous</permission> <permission>hudson.model.Item.Build:dev</permission> <permission>hudson.model.Item.Read:anonymous</permission> <permission>hudson.model.Item.Read:dev</permission> </authorizationStrategy> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm> 3)每個使用者後都有1-2個圖示,第一個是反選功能(刪除當前已選擇的許可權,選擇其他所有許可權),第二個是刪除功能(刪除該使用者) 4)在Job中配置專案安全,如下圖: 二、遇到的問題 由於授權出錯,導致無法登入,具體可參考http://www.cnblogs.com/yangxia-test/p/4363566.html操作。 ? 最後給大家說說在配置檔案裡面怎麼辨別使用是哪種許可權控制模式 <authorizationStrategy>節點上有個class屬性,這個屬性控制著使用那種授權模式。 ? hudson.security.FullControlOnceLoggedInAuthorizationStrategy 登入使用者可以做任何事 hudson.security.ProjectMatrixAuthorizationStrategy 專案矩陣授權策略 hudson.security.GlobalMatrixAuthorizationStrategy 安全矩陣 hudson.security.LegacyAuthorizationStrategy 遺留模式