Безопасность веб-панели CruiseControl.net - PullRequest
7 голосов
/ 20 сентября 2011

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

Безопасность, которую я хочу, довольно проста.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.
  • В конфигурации панели управления, что мне нужно в разделе <securityPlugins>.

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

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

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

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

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

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

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

Ответы [ 2 ]

10 голосов
/ 29 сентября 2011

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

0 голосов
/ 21 сентября 2011

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

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

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

...