【问题标题】:CruiseControl.net web dashboard securityCruiseControl.net Web 仪表板安全性
【发布时间】:2015-12-24 05:33:39
【问题描述】:

我在向 Web 仪表板添加安全性时遇到了极端问题。我正在尝试为一堆 Web 应用程序项目设置安全性。在没有启用安全性的情况下一切正常。

我想要的安全性相当简单。 2个角色“发布者”和“测试者”,发布者可以做任何事情,测试者可以强制构建测试部署项目并且只查看所有升级实时安装的其余项目。但是我就是无法让它工作。作为开始,我认为我已经为每个人提供了一切,并且根据我设置各种事物的方式,我遇到了一些不同的问题。在所有情况下,配置文件都使用验证器工具进行验证。

服务器配置

 <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

文档中有 3 件事不清楚。

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

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

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

编辑

谁能提出我可以实现以下目标的东西,谁就可以获得赏金,即使这与我上面描述的方式完全不同。

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

编辑 2

由于赏金即将用完,我也会给予它,以便任何可以提供某种令人信服的证据证明 cc.net 中的安全性不起作用的人,所以至少我知道不要再浪费我的时间了.此外,我尝试记录一个问题或在 cc.net 论坛上发布关于此的问题,但他们似乎已经过渡到一个新系统,而且这似乎也不起作用,它根本不会让你注册一个用户帐户,它需要电子邮件验证,但电子邮件永远不会通过。

【问题讨论】:

    标签: cruisecontrol.net ccnet-config


    【解决方案1】:

    好的,我终于解决了。一切都设置得很好。但是文档根本没有提到如何登录。您在 iis/web.config 中设置了哪种安全性。这个问题的答案是无关紧要的,因为 cc.net 不使用任何这些类型的安全性。该文档提到通过在仪表板配置中添加一个&lt;securityPlugins&gt; 部分来启用登录,其中包含一个“启用登录”元素。但它没有提到如何登录。我刚刚注意到的是,如果您在 Web 仪表板中从列表中选择一个服务器,那么它会给您一个登录按钮。事情是我很少看服务器报告,我只有一台服务器,所以“农场报告”是与“服务器报告”相同的项目列表,它看起来毫无意义。但是只有在查看服务器报告时才会出现登录按钮。感觉有点傻但是很简单——“你不能从农场报告登录你需要选择一个服务器报告才能登录” - 在文档中可以节省我几天的挫败感。 IE。我花了好几天才找到该死的登录按钮。

    【讨论】:

    【解决方案2】:

    我也很好奇,会再次尝试解决这个问题,但上次我尝试时也被难住了。

    我的临时解决方法是配置 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>
    

    不是最好的,但确实有效...

    【讨论】:

    • 谢谢,很遗憾它对我不起作用。我有一堆构建和部署实时 Web 应用程序的“实时”项目和一个构建和部署暂存/测试 Web 应用程序的暂存项目。我希望有限数量的用户能够强制构建实时项目,但所有其他用户都可以查看实时,但也可以强制构建暂存/测试项目。因此,所有用户都需要能够发帖。
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多