Permissions 将jenkins权限映射到具有“无”、“查看”、“编辑”或“全部”权限的外部应用程序

Permissions 将jenkins权限映射到具有“无”、“查看”、“编辑”或“全部”权限的外部应用程序,permissions,jenkins,Permissions,Jenkins,我正在为jenkins的外部应用程序身份验证编写插件。我想将授权逻辑委托给外部应用程序。外部应用对用户没有、查看、编辑和所有权限 没有什么是直截了当的——什么都不允许 一切都很简单——允许一切 对于编辑和查看,我需要以下权限: 视图应该能够查看所有作业和视图,但没有配置,不能更改任何内容 EDIT应该能够查看所有作业和视图、创建新视图、创建新作业、编辑作业,但不能访问jenkins系统配置 我可以在jenkins中看到这些权限: [ 0] Permission[class hudson.mode

我正在为jenkins的外部应用程序身份验证编写插件。我想将授权逻辑委托给外部应用程序。外部应用对用户没有、查看、编辑和所有权限

没有什么是直截了当的——什么都不允许

一切都很简单——允许一切

对于编辑和查看,我需要以下权限:

视图应该能够查看所有作业和视图,但没有配置,不能更改任何内容

EDIT应该能够查看所有作业和视图、创建新视图、创建新作业、编辑作业,但不能访问jenkins系统配置

我可以在jenkins中看到这些权限:

[ 0] Permission[class hudson.model.Hudson,Administer]
[ 1] Permission[class hudson.security.Permission,FullControl]
[ 2] Permission[class hudson.security.Permission,GenericRead]
[ 3] Permission[class hudson.security.Permission,GenericWrite]
[ 4] Permission[class hudson.security.Permission,GenericCreate]
[ 5] Permission[class hudson.security.Permission,GenericUpdate]
[ 6] Permission[class hudson.security.Permission,GenericDelete]
[ 7] Permission[class hudson.security.Permission,GenericConfigure]
[ 8] Permission[class hudson.model.Hudson,Read]
[ 9] Permission[class hudson.model.Hudson,RunScripts]
[10] Permission[interface hudson.model.Item,Create]
[11] Permission[interface hudson.model.Item,Delete]
[12] Permission[interface hudson.model.Item,Configure]
[13] Permission[interface hudson.model.Item,Read]
[14] Permission[interface hudson.model.Item,ExtendedRead]
[15] Permission[interface hudson.model.Item,Build]
[16] Permission[interface hudson.model.Item,Workspace]
[17] Permission[interface hudson.model.Item,WipeOut]
[18] Permission[class hudson.model.View,Create]
[19] Permission[class hudson.model.View,Delete]
[20] Permission[class hudson.model.View,Configure]

我应该使用上面列表中的哪个Jenkins权限进行编辑和查看?

以保守权限开始:

  • hudson.security.Permission,用于查看或编辑的通用*
    ,也无
    RunScripts
    (仅当您注意到需要时才添加以进行编辑)
  • 其他
    hudson.model.*
    编辑权限(可能不删除,问题未指定)
  • 只有查看的基本读取权限,添加
    ExtendedRead
    仅当您没有它无法查看所有需要的内容时才查看(我想这可能是为了查看作业配置,但请先尝试不使用它)
要获得权威答案,请查看Jenkins source,但从保守的角度出发的尝试和错误应该只需几次迭代就能给出最佳答案

我想你会想要一个完整的正确权限列表作为答案,但这确实需要在回答之前进行测试,或者仔细检查源代码以查看这些权限的检查位置,然后你必须测试自己是否安全(因为这是匿名论坛上与安全相关的问题)


Jenkins文档的相关链接(也是我所知的唯一一个链接),关于实际使用权限,这可能有助于对源代码进行灰显:

我想我们正在寻找权限的解释,是的,我们可以查看代码,但我们假设其他人也处理过这个问题。是的,我想是这样的,但由于5天内没有人回答,我想我会拿出5美分,尽管我没有时间仔细阅读詹金斯的源代码。但是,无论如何,我现在会用一个链接来补充答案。我感谢你的帮助。我给了你帮助的赏金。