joozh 发表于 2018-1-8 16:11:39

TinaQianQian

  默认Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,Jjob和启动build等。显然在公司中需要多个部门一起协调工作时,没有任何安全检查会有问题。所以,我们需要在系统管理-Configure Global Security页面进行“访问控制”设置。
  在这里我们将安全域设置中,允许用户注册的勾选去掉
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110120036997-1728405645.jpg
  Jenkins的权限配置文件存放在JENKINS_HOME目录下,找到config.xml。打开config.xml,找到<useSecurity>和<authorizationStrategy>节点。
  <useSecurity>:代表是否使用用户权限;<authorizationStrategy>:代表用户权限是怎么划分;
  (1)Security Realm,决定用户名和密码,并指定用户属于哪个组;
  (2)Authorization Strategy,决定用户对哪些资源有访问权限;
  1. 授权策略
  1.1 任何用户可以
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110121151856-932002749.jpg

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

<useSecurity>true</useSecurity>  <authorizationStrategy/>
  <securityRealm>
  <disableSignup>true</disableSignup>
  <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  


View Code  1.2 登录用户可以做任何事情
  1.2.1 界面配置如下
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110121456419-1343060798.jpg
  1.2.2 config.xml配置如下

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

<useSecurity>true</useSecurity>  <authorizationStrategy/>
  <securityRealm>
  <disableSignup>false</disableSignup>
  <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  


View Code  1.3 安全矩阵
  1.3.1 界面配置如下
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110121731575-777750934.jpg
  1.3.2 config.xml配置如下

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

<useSecurity>true</useSecurity>  <authorizationStrategy>
  <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>
  <disableSignup>false</disableSignup>
  <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  


View Code  设置好权限之后,点击注册,注册相应的账号,如上图的dev,jenkins。
  1.4项目矩阵策略
  1.4.1 界面配置如下:
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110122200966-665545749.jpg
  各种权限如下(在配置页面将鼠标放到该权限上即可查看帮助):
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110124031513-426952636.jpg
  其中有一些比较特别的权限:
  最大的权限是Overall的Administer,拥有该权限可以干任何事情。
  最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。
  Job的Discover权限是一个奇葩的权限,帮助说Discover比Read的级别更低。如果匿名用户(没有访问job的权限)直接访问一个Job的Url将重定向到登陆页面。(经测试,这个权限应该是被废弃了。)
  Credentials的ManageDomains这个权限没有看懂干嘛的,有懂的大家一起交流哈!
  ps:如果有个用户被赋予了Overall的Read,并没有被赋予Job的Read权限,那么该用户就无法访问job。原因:没有权限。
  1.4.2 config.xm配置如下

https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttps://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif  

<useSecurity>true</useSecurity>  <authorizationStrategy>
  <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>
  <disableSignup>false</disableSignup>
  <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  


View Code  1.4.3 每个用户后都有1-2个图标,第一个是反选功能(删除当前已选中的权利,选中其他所有权限),第二个是删除功能(删除该用户)
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110124416559-2138184539.jpg
  1.4.4 在Job中配置项目安全如下:
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110124545856-460642288.jpg
  2. 过程问题
  2.1怎么辨别使用是哪种权限控制模式
https://images2017.cnblogs.com/blog/1105867/201711/1105867-20171110124701669-1238330280.jpg
页: [1]
查看完整版本: TinaQianQian