2011-09-20 15 views
7

Ho problemi estremi con l'aggiunta di sicurezza alla dashboard web. Sto cercando di impostare la sicurezza per un gruppo di progetti di app web. Tutto funziona senza alcuna sicurezza abilitata.CruiseControl.net sicurezza dashboard web

La sicurezza che voglio è abbastanza semplice. 2 ruoli "Releasers" e "Tester", i releaser possono fare qualsiasi cosa, i tester possono forzare la costruzione del progetto di implementazione di test e visualizzare solo il resto dei progetti che aggiornano tutte le installazioni live. Tuttavia, non riesco a farlo funzionare. Come inizio credo di aver appena concesso tutto per tutti e ho avuto qualche problema diverso a seconda di come ho impostato varie cose. In tutti i casi il file di configurazione viene convalidato con il validatore util.

Config Server

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

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

Dashboard.config

Ci sono 3 cose che non sono chiare dalla documentazione.

  • Che tipo di autenticazione deve essere impostato in IIS.
  • Che tipo di utenti devo impostare nella sezione di sicurezza ccnet.config del server .
  • Nella dashboard config di cosa ho bisogno nella sezione <securityPlugins>.

ho provato le forme e le finestre integrate nel web.config e in IIS. Con i moduli si lamenta essenzialmente che non esiste login.aspx, che non è così ho il sospetto che sia corretto. Con Windows integrato posso accedere al cruscotto. Tutti i progetti che non hanno elementi di sicurezza sono in grado di vedere nell'elenco ma qualsiasi azione provoca un'eccezione di sicurezza che dice che non ho il permesso ViewProject. Tutti i progetti che hanno l'elemento di sicurezza semplicemente non vengono visualizzati nell'elenco. Ottengo lo stesso comportamento qualunque sia il tipo di utente che utilizzo simpleUser, passwordUser o ldapUser. Non riesco a trovare da nessuna parte che menzioni qualsiasi altro valore che posso inserire nella sezione securityPlugins diversa da simpleSecurity, ci sono altri valori e, in caso affermativo, quali sono.

Ho cercato la documentazione this e non riesco a trovare nessuna risposta a nessuna di queste domande.

EDIT

Chiunque può suggerire un quello che posso raggiungere l'obiettivo di seguito ottiene la grazia, anche se si tratta di un modo totalmente diverso da quello che ho descritto sopra.

Desidero un insieme di utenti in grado di visualizzare tutti i progetti CC.net e forzare la creazione di un progetto specifico. Voglio un altro gruppo di utenti in grado di visualizzare e forzare la compilazione di tutti i progetti. Voglio che sia con una singola dashboard cc.net, un file di configurazione, ma con diversi account utente.

EDIT 2

Come la bontà si sta esaurendo presto sarò anche dargli così chiunque in grado di offrire un qualche tipo di prove convincenti che la sicurezza in cc.la rete non funziona, quindi almeno so di non sprecare più tempo. Inoltre ho cercato di registrare un problema o di postare nel forum di cc.net su questo, ma sembra che siano passati a un nuovo sistema e che non funzioni sembra funzionare, semplicemente non ti permette di registrarti per un account utente, richiede la verifica della posta elettronica ma l'e-mail non arriva mai.

risposta

10

OK alla fine ho lavorato fuori. Tutto è stato impostato perfettamente bene. Tuttavia ciò che la documentazione non menziona affatto è come accedere. Che tipo di sicurezza installate in iis/web.config. La risposta a questo è irrilevante dato che cc.net non usa nessuno di questi tipi di sicurezza. La documentazione menzionava l'abilitazione dei registri aggiungendo una sezione <securityPlugins> alla configurazione dashboard con un elemento al suo interno per "abilitare il login". Ma non ha menzionato come accedere. Quello che ho notato JUST è che se nella dashboard web selezioni un server dall'elenco, ti viene fornito un pulsante di accesso. Di solito guardo raramente al rapporto del server, ho solo 1 server, quindi "farm report" è lo stesso elenco di progetti del "server report" e sembrava semplicemente inutile. Ma il pulsante di accesso viene visualizzato solo se si sta visualizzando un rapporto sul server. Mi sento un po 'sciocco ma un semplice - "non è possibile accedere dal report della fattoria; è necessario selezionare un report del server per accedere" - nei documenti mi avrebbe salvato letteralmente giorni di frustrazione . OSSIA mi ci sono voluti giorni per trovare il pulsante di accesso sanguinante.

+0

Puoi specificare maggiori dettagli? Non so cosa mettere in . La documentazione per i plugin di sicurezza su http://cruisecontrolnet.org/projects/ccnet/wiki/Security_plugins restituisce 404 – erict

+0

I dettagli sono che ho trovato il pulsante di accesso, tutto il resto che avevo configurato funzionava in effetti OK, –

0

Sarei curioso anche io e proverò a capirlo di nuovo, ma l'ultima volta che ho provato sono stato anche perplesso.

La mia soluzione temporanea era configurare il web.config per definire chi ha accesso a CC.NET solo per le richieste GET e chi ha accesso completo (include le richieste POST necessarie per qualsiasi azione di kickoff).

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

Non è la migliore, ma ha fatto il lavoro ...

+0

Grazie, purtroppo non funzionerà per me. Ho un sacco di progetti "live" che costruiscono e distribuiscono applicazioni web live e un progetto di staging che costruisce e distribuisce l'app web di staging/testing. Desidero che un numero limitato di utenti sia in grado di forzare la creazione dei progetti dal vivo, ma tutti gli altri utenti possono visualizzare il live ma anche forzare la creazione del progetto di staging/test. Come tale, tutti gli utenti devono poter pubblicare. –