4

我正在使用 jenkins 编写一个用于外部应用程序身份验证的插件。我想将授权逻辑委托给外部应用程序。外部应用程序对用户具有 NONE、VIEW、EDIT 和 ALL 权限。

NONE 是直截了当的 - 什么都不做

ALL 很简单——允许一切

对于 EDIT 和 VIEW,我想要这些权限:

VIEW 应该可以查看所有作业和视图,但是没有配置也不能改变任何东西

EDIT 应该能够查看所有作业和视图,创建新视图,创建新作业,编辑作业,但不能访问 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 权限用于 EDIT 和 VIEW?

4

1 回答 1

4

从保守的权利开始:

  • hudson.security.Permission,Generic*对于 VIEW 或 EDIT 都没有,也没有(RunScripts仅当您注意到需要时才添加 EDIT),
  • EDIT 的其他hudson.model.*权限(可能不删除,问题未指定),
  • 只有 VIEW 的基本读取权限,ExtendedRead只有在没有它的情况下无法查看所需的所有内容时才添加 VIEW(我猜这可能是用于查看作业配置,但请先尝试不使用它)。

对于权威答案,请查看 Jenkins 源代码,但从保守的角度开始反复试验应该只需几次迭代即可为您提供最佳答案。

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

与 Jenkins 文档相关的(也是我知道的)链接,关于实际使用权限,这可能有助于获取源代码:https ://wiki.jenkins-ci.org/display/JENKINS/Making+your+plugin+表现+在+安全+詹金斯

于 2012-10-24T09:58:51.047 回答