我正在为jenkins编写外部应用程序身份验证插件。我想将授权逻辑委托给外部应用程序。外部应用程序具有NONE,VIEW,EDIT和用户的所有权限。
NONE很简单 - 只允许一无所有
ALL很简单 - 允许一切
对于EDIT和VIEW,我想要这些权限:
VIEW应该能够查看所有作业和视图,但没有配置,也无法更改任何内容
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权限进行编辑和查看?
答案 0 :(得分:4)
从保守权利开始:
hudson.security.Permission,Generic*
,也没有RunScripts
(仅当您发现需要时才添加EDIT),hudson.model.*
权限(可能不会删除,问题未指定),ExtendedRead
(这可能是为了查看作业配置,我猜,但先试试没有它) 对于权威性答案,请查看Jenkins来源,但从保守派开始的反复试验应该只需几次迭代即可为您提供最佳答案。
我想你想要一个完整的正确权限列表作为答案,但这确实需要在回答之前进行测试,或仔细检查来源以查看这些被检查的位置,然后你必须自己测试自己安全(因为这是一个匿名论坛上的安全相关问题)。
相关(我只知道一个)链接到Jenkins文档,关于实际使用权限,这可能有助于简化源代码:https://wiki.jenkins-ci.org/display/JENKINS/Making+your+plugin+behave+in+secured+Jenkins