Безопасность веб-панели CruiseControl.net

У меня экстремальные проблемы с добавлением защиты на веб-панель. Я пытаюсь настроить безопасность для нескольких проектов веб-приложений. Все работает без включенной безопасности.

Безопасность, которую я хочу, довольно проста. 2 роли "Релизеры" и "Тестеры", релизеры могут делать что угодно, тестеры могут принудительно создавать проект развертывания тестов и просматривать только остальные проекты, которые все обновляют живые установки. Однако я просто не могу заставить его работать. Для начала я думаю, что я только что позволил все для всех, и у меня есть несколько разных проблем в зависимости от того, как я настроил различные вещи. Во всех случаях файл конфигурации проверяется с помощью утилиты validator.

Конфигурация сервера

 <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.
  • В конфиге приборной панели, что мне нужно в <securityPlugins> раздел.

Я пробовал формы и окна, интегрированные в web.config и в iis. С формами по существу жалуется, что нет login.aspx, чего нет, поэтому я подозреваю, что это правильно. С интегрированными окнами я могу получить доступ к приборной панели. Любые проекты, у которых нет элемента безопасности, который я вижу в списке, но любое действие приводит к исключению безопасности, говоря, что у меня нет разрешения ViewProject. Любые проекты, которые имеют элемент безопасности, просто не отображаются в списке. Я получаю такое же поведение, какой бы тип пользователя я не использовал, simpleUser, passwordUser или ldapUser. Я не могу найти нигде, где упоминается любая другая ценность, которую я могу поставить в securityPlugins В разделе, отличном от simpleSecurity, есть ли другие значения и если да, то каковы они?

Я искал эту документацию и не могу найти ответы ни на один из этих вопросов.

РЕДАКТИРОВАТЬ

Тот, кто может предложить то, что я могу достичь нижеприведенной цели, получает награду, даже если это совершенно другой способ, чем я описал выше.

Мне нужен набор пользователей, которые могут просматривать все проекты CC.net и принудительно создавать 1 конкретный проект. Я хочу другой набор пользователей, которые могут просматривать и принудительно создавать все проекты. Я хочу, чтобы это было с одной единственной панелью управления cc.net, одним файлом конфигурации, но с разными учетными записями пользователей.

РЕДАКТИРОВАТЬ 2

Поскольку щедрость скоро заканчивается, я также дам ее любому, кто сможет предложить какое-то убедительное доказательство того, что безопасность в cc.net не работает, поэтому, по крайней мере, я знаю, что больше не буду тратить на это свое время. Кроме того, я попытался зарегистрировать проблему или опубликовать сообщение об этом на форуме cc.net, но они, похоже, перешли на новую систему, и это, похоже, тоже не работает, просто не позволит вам подписаться на учетная запись пользователя, она требует проверки электронной почты, но электронная почта не приходит.

2 ответа

Решение

ОК, я наконец-то решил это. Все было настроено идеально. Однако то, что документация не упоминает вообще, КАК ВОЙТИ. Какую безопасность вы настраиваете в iis / web.config. Ответ на этот вопрос не имеет значения, так как cc.net не использует ни один из этих видов безопасности. В упомянутой документации включены входы в систему путем добавления <securityPlugins> раздел конфигурации панели управления с элементом для "включения входа". Но в нем не упоминалось, как войти в систему. Я только что заметил, что если в веб-панели управления вы выбираете сервер из списка, он дает вам кнопку входа. Дело в том, что я редко смотрю отчет сервера, у меня есть только 1 сервер, поэтому "отчет фермы" - это тот же список проектов, что и "отчет сервера", и он просто кажется бессмысленным. Но кнопка входа появляется только в том случае, если вы просматриваете отчет сервера. Я чувствую себя немного глупо, но просто - "вы не можете войти в систему из отчета фермы; вам нужно выбрать отчет сервера для входа" - в документах я бы сэкономил буквально дни разочарования. То есть мне потребовались дни, чтобы найти кровавую кнопку входа в систему.

Мне тоже было бы любопытно, и я снова попытаюсь это выяснить, но в прошлый раз, когда я пытался, я тоже был в тупике.

Мой временный обходной путь состоял в том, чтобы настроить 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>

Не самый лучший, но это сработало...

Другие вопросы по тегам