7

我在向 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>

仪表板.config

文档中有 3 件事不清楚。

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

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

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

编辑

谁能建议我可以实现以下目标的人将获得赏金,即使它与我上面描述的方式完全不同。

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

编辑 2

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

4

2 回答 2

10

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

于 2011-09-29T16:02:13.517 回答
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>

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

于 2011-09-21T01:16:09.890 回答