2011-09-20 50 views
7

我在为Web仪表板添加安全性时遇到了极大的问题。我正在尝试为一些Web应用程序项目设置安全性。一切工作都没有启用安全性。CruiseControl.net web仪表板安全

我想要的安全性非常简单。 2个角色“发布者”和“测试者”,发布者可以做任何事情,测试者可以强制构建测试部署项目,并只查看其他项目,这些项目都升级了实时安装。但是我无法让它工作。作为一个开始,我认为我已经允许每个人的一切,我得到一些不同的问题,取决于我如何设置各种事情。在任何情况下,配置文件都会通过验证器util进行验证。

服务器配置

<internalSecurity>  
    <users> 
     <ldapUser name="ccnet" domain="localhost" /> 
     <passwordUser name="ccnetadmin" password="NotTheRealPW" />  
    </users> 
    <permissions> 
     <rolePermission name="Releasers" defaultRight="Allow"> 
     <users> 
      <userName name="ccnetadmin"/> 
     </users> 
     </rolePermission> 
     <rolePermission name="Testers" defaultRight="Allow"> 
     <users> 
      <userName name="ccnet"/> 
     </users> 
     </rolePermission> 
    </permissions> 
    </internalSecurity> 

项目安全

<security type="defaultProjectSecurity" defaultRight="Inherit"> 
     <permissions> 
     <rolePermission name="Testers" ref="Testers"/> 
     <rolePermission name="Releasers" ref="Releasers"/>   
     </permissions> 
    </security> 

Dashboard.config

有三样东西是无法从文档清晰。

  • 什么样的身份验证需要在IIS中设置。
  • 需要在ccnet.config服务器 安全部分中设置哪种用户。
  • 在仪表板配置中,我需要在<securityPlugins>部分中需要什么。

我已经尝试过在web.config和iis中集成的窗体和窗口。使用表单时,它基本上抱怨没有login.aspx,这并不是我怀疑这是正确的。随着Windows集成我可以访问仪表板。任何没有安全元素的项目可以在列表中看到,但任何操作都会导致安全异常,说我没有ViewProject权限。任何具有安全元素的项目都不会显示在列表中。无论用户类型是simpleUser,passwordUser还是ldapUser,我都会得到相同的行为。除了simpleSecurity以外,我找不到任何其他值可以放在securityPlugins部分的任何值,还有其他值,如果有的话,它们是什么。

我搜索了this文档,我找不到任何这些问题的答案。

编辑

谁可以提出一个我能达到以下目标得到赏金,哪怕是比我上面描述完全不同的方法。

我想要一组可以查看所有CC.net项目并强制构建1特定项目的用户。我想要另一组可以查看和强制构建所有项目的用户。我希望它只与一个cc.net仪表板,一个配置文件,但具有不同的用户帐户。

EDIT 2

由于奖金不多了不久,我也会给它使任何人都能够提供某种令人信服的证据表明在CC上的安全性。网不起作用,所以至少我不会再浪费时间了。此外,我试图登录一个问题或张贴到cc.net论坛关于这个,但他们似乎已经过渡到一个新的系统,这似乎也行不通,它根本不会让你注册一个用户帐户,它需要电子邮件验证,但电子邮件永远不会通过。

回答

10

OK我终于工作了。一切都设置得很好。然而,文档没有提到的是如何登录。你在iis/web.config中设置了什么样的安全性。对此的答案是不相关的,因为cc.net不使用任何这种安全性。文档中提到通过向仪表板配置中添加一个<securityPlugins>部分来启用登录,其中包含一个元素以“启用登录”。但它没有提及如何登录。我只注意到,如果在网络仪表板中从列表中选择一台服务器,它会给你一个登录按钮。事情是我很少看服务器报告,我只有1个服务器,所以“农场报告”是与“服务器报告”相同的项目列表,它似乎毫无意义。但只有在查看服务器报告时才会显示登录按钮。我觉得自己有点傻,但一个简单的 - “你不能从农场报告登录; 你需要选择一个服务器报告登录” - 在文档将有救了我无奈的字面天。 I.E.它花了我几天的时间来找到血腥的登录按钮。

+0

你能指定更多细节吗?我不知道该把什么放入。安全插件的文档http://cruisecontrolnet.org/projects/ccnet/wiki/Security_plugins返回404 – erict

+0

详细信息是,我发现登录按钮,我设置的其他一切确实工作正常, –

0

我也很好奇,并会试图再次弄清楚这一点,但上次我尝试了我也被难倒了。

我的临时解决方法是配置web.config以定义谁只能访问CC.NET的GET请求以及完全访问谁(包括任何启动操作所需的POST请求)。

<configuration> 
    <system.web> 
     <authorization> 
      <allow verbs="GET" roles="DOMAIN\ccnetreadonly" /> 
      <allow roles="DOMAIN\ccnetcanperformactions" /> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 

不是最好的,但它确实工作...

+0

谢谢,不幸的是它不会为我工作。我有一大堆构建和部署实时Web应用程序的“实时”项目和构建和部署分段/测试Web应用程序的分段项目。我希望有限数量的用户能够强制构建实时项目,但所有其他用户都可以查看实时项目,但也可以强制构建阶段/测试项目。因此,所有用户都需要能够发布。 –