2011-09-20 16 views
7

Tengo problemas extremos para agregar seguridad al tablero web. Estoy tratando de configurar la seguridad para un grupo de proyectos de aplicaciones web. Todo funciona sin seguridad habilitada.CruiseControl.net web dashboard security

La seguridad que quiero es bastante simple. 2 roles "Liberadores" y "Probadores", los liberadores pueden hacer cualquier cosa, los evaluadores pueden forzar la construcción del proyecto de implementación de prueba y solo ver el resto de los proyectos que mejoran las instalaciones en vivo. Sin embargo, no puedo hacer que funcione. Para empezar, creo que acabo de permitir todo para todos y tengo algunos problemas diferentes dependiendo de cómo configuro varias cosas. En todos los casos, el archivo de configuración se valida con la herramienta de validación.

de configuración del servidor

<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> 

Seguridad Proyecto

<security type="defaultProjectSecurity" defaultRight="Inherit"> 
     <permissions> 
     <rolePermission name="Testers" ref="Testers"/> 
     <rolePermission name="Releasers" ref="Releasers"/>   
     </permissions> 
    </security> 

Dashboard.config

Hay 3 cosas que no están claras a partir de la documentación.

  • Qué tipo de autenticación se debe configurar en IIS.
  • ¿Qué tipo de usuarios necesito configurar en la sección de seguridad del servidor ccnet.config ?
  • En la configuración del tablero, ¿qué necesito en la sección <securityPlugins>?

He intentado formularios y ventanas integrados en el web.config y en iis. Con formularios, esencialmente se queja de que no hay login.aspx, que no es así, así que sospecho que esto es correcto. Con las ventanas integradas, puedo acceder al tablero. Cualquier proyecto que no tenga un elemento de seguridad que pueda ver en la lista, pero cualquier acción dará como resultado una excepción de seguridad diciendo que no tengo el permiso ViewProject. Cualquier proyecto que tenga el elemento de seguridad simplemente no aparece en la lista. Obtengo el mismo comportamiento, cualquiera que sea el tipo de usuario, uso simpleUser, PasswordUser o ldapUser. No puedo encontrar ningún lugar que mencione ningún otro valor que pueda poner en la sección securityPlugins que no sea simpleSeguridad, ¿hay algún otro valor y, de ser así, cuáles son?

He buscado this documentación y no puedo encontrar ninguna respuesta a estas preguntas.

EDITAR

El que puede sugerir una lo que puedo lograr la meta a continuación obtiene la recompensa, incluso si se trata de una forma totalmente diferente de lo que he descrito anteriormente.

Quiero un conjunto de usuarios que puedan ver todos los proyectos de CC.net y forzar el proyecto específico de compilación 1. Quiero otro conjunto de usuarios que puedan ver y forzar la compilación de todos los proyectos. Quiero que sea con un único panel de control cc.net, un archivo de configuración, pero con diferentes cuentas de usuario.

EDIT 2

A medida que la recompensa se agota pronto también daré por lo que cualquier persona que pueda ofrecer algún tipo de evidencia convincente de que la seguridad en los cc.net no funciona, así que al menos sé que no perderé más tiempo con eso. También intenté registrar un problema o publicarlo en el foro de cc.net sobre esto, pero parece que pasaron a un nuevo sistema y parece que tampoco funciona, simplemente no te permite registrarte para un cuenta de usuario, requiere verificación de correo electrónico pero el correo electrónico nunca llega.

Respuesta

10

OK finalmente trabajado a cabo. Todo fue configurado perfectamente bien. Sin embargo, lo que la documentación no menciona en absoluto es CÓMO INICIAR SESIÓN. ¿Qué tipo de seguridad configuras en iis/web.config? La respuesta a esto es que es irrelevante ya que cc.net no utiliza ninguno de estos tipos de seguridad. La documentación menciona la habilitación de inicios de sesión al agregar una sección <securityPlugins> a la configuración del tablero con un elemento para "habilitar el inicio de sesión". Pero no mencionó cómo iniciar sesión. Lo que acabo de notar es que si en el tablero web selecciona un servidor de la lista, entonces le da un botón de inicio de sesión. La cosa es que rara vez miro el informe del servidor, solo tengo 1 servidor, por lo que el "informe de la granja" es la misma lista de proyectos que el "informe del servidor" y me pareció inútil. Pero el botón de inicio de sesión solo aparece si está viendo un informe del servidor. Me siento un poco tonto pero simple - "no puede iniciar sesión desde el informe de la granja; debe seleccionar un informe del servidor para iniciar sesión" - en los documentos me habría ahorrado literalmente días de frustración . ES DECIR. me ha llevado días encontrar el botón de inicio de sesión sangriento.

+0

¿Puedes especificar más detalles? No sé qué poner en . La documentación para los complementos de seguridad en http://cruisecontrolnet.org/projects/ccnet/wiki/Security_plugins devuelve 404 – erict

+0

Los detalles son que encontré el botón de inicio de sesión, todo lo demás que tenía configurado funcionaba bien, –

0

Sería curioso también y trataré de resolver esto de nuevo, pero la última vez que lo intenté también me quedé perplejo.

Mi solución provisional fue configurar el web.config para definir quién tiene acceso a CC.NET solo para solicitudes GET, y quién tiene acceso completo (incluye solicitudes POST que son necesarias para cualquier acción de inicio).

<configuration> 
    <system.web> 
     <authorization> 
      <allow verbs="GET" roles="DOMAIN\ccnetreadonly" /> 
      <allow roles="DOMAIN\ccnetcanperformactions" /> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 
No

el mejor, pero no funcionaba ...

+0

Gracias, lamentablemente no funcionará para mí. Tengo un montón de proyectos "en vivo" que crean e implementan aplicaciones web en vivo y un proyecto de preparación que construye y despliega la aplicación web de ensayo/prueba. Quiero que un número limitado de usuarios pueda forzar la construcción de proyectos en vivo, pero todos los demás usuarios pueden ver el directo pero también forzar la construcción del proyecto de ensayo/ensayo. Como tal, todos los usuarios deben poder publicar. –