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

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

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

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

 <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 об этом, но они, похоже, перешли на новую систему, и это тоже не работает, похоже, это просто не позволяет вам подписаться на учетная запись пользователя, для этого требуется подтверждение адреса электронной почты, но оно никогда не приходит.


person Ben Robinson    schedule 20.09.2011    source источник


Ответы (2)


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

person Ben Robinson    schedule 29.09.2011
comment
Можете уточнить подробности? Я не знаю, что положить в ‹securityPlugins›. Документация для подключаемых модулей безопасности на странице cruisecontrolnet.org/projects/ccnet/wiki/Security_plugins возвращает 404 - person erict; 15.12.2013
comment
Подробности таковы, что я нашел кнопку входа в систему, все остальное, что я установил, на самом деле работает нормально, - person Ben Robinson; 16.12.2013

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

Моим временным обходным решением было настроить 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>

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

person CHarmon    schedule 21.09.2011
comment
Спасибо, у меня не получится. У меня есть несколько живых проектов, которые создают и развертывают живые веб-приложения, и промежуточный проект, который создает и развертывает тестовое веб-приложение. Я хочу, чтобы ограниченное количество пользователей могло принудительно создавать живые проекты, но все другие пользователи могли просматривать живые, а также принудительно создавать промежуточный / тестовый проект. Таким образом, все пользователи должны иметь возможность публиковать сообщения. - person Ben Robinson; 21.09.2011