3 messaggi dal 13 dicembre 2006
Ciao a tutti, sono un nuovo utente! Ho un problema che forse è comune a molti, cercherò di essere breve ma di illustrare il tutto con chiarezza.

Avrei bisogno di un parere per uno scenario di applicazione ASP.NET 2.0 che gira su una intranet: ho problemi di autenticazioni e settaggi di Service Principal Name (SPN) su Active Directory.

Impostazioni:
Windows Server 2003 e IIS 6.0
SQL Server 2000
Web Site sulla porta 80 con impostato un Host Header.
Windows Authentication, FrontPage Extension 2002
Necessità di aprire e modificare il sito direttamente sul server di sviuppo con Visual Studio 2005 (o VS 2003 per quelli "vecchi" già deployati da tempo)

Seguendo le best practices Microsoft ho creato un Application Pool separato per l'applicazione in questione e come identità uso un utente di dominio creato apposta (il famoso Custom Service Account) a cui ho assegnato i privilegi corretti con aspnet_regiis -ga nomeDominio\nomeAccount. Questo è anche lo user impostato su SQL Server.

Ho letto che per permettere a Kerberos di autenticare l'utente che si collega è necessario creare un SPN su Active Directory per il Custom Service Account.

MI CHIEDO QUESTO:

1) il SPN deve essere creato sia col nome del server che col nome dell'alias?
es:
setspn -A HTTP/nomeWebserver(FullyQualified) nomeDominio\nomeAccount
+
setspn -A HTTP/nomeAlias nomeDominio\nomeAccount

se metto solo il secondo non mi funziona e IE6 mi apre la finestra per autenticarmi.

Però se metto anche il primo e ripeto la procedura per altri siti il Domain Controller manda degli errori sull'Event Viewer che ci sono più account con lo stesso nome!

Inoltre c'è uno spiacevole effetto collaterale: in questo modo i miei colleghi NON riescono ad aprire i loro siti (che risiedono sullo stesso server) remotamente da Visual Studio!

Ho risolto l'ultimo problema aggiungendo degli SPN per ogni sviluppatore:
setspn -A HTTP/nomeWebserverFullyQualified nomeDominio\nomeSviluppatore

ma resta il problema della duplicazione dei SPN! E inoltre VS 2005 mi fa aprire il sito remoto ma a random, mentre lavoro, si "arrabbia" e mi chiede di autenticarmi.

2) E' sbagliato lo scenario che ho messo in piedi? Quanti setspn devo fare?

3)Qual è lo scenario corretto per Windows Authentication con Application Pool separati per ogni sito con uno user custom? Vorremmo che una volta che l'utente si è loggato sul dominio con Windows non debba inserire nessun'altra credenziale per vedere l'applicazione.

4)Quando gli sviluppatori si connettono al sito remoto è corretto che entrino automaticamente con le proprie credenziali o ha più senso loggarsi per es. con un utente locale amministratore della macchina uguale per tutti?

Grazie a tutti anticipatamente per le risposte!

~pointer~
pointer wrote:
1) il SPN deve essere creato sia col nome del server che col nome dell'alias?

ma il server web è nel dominio?

ma resta il problema della duplicazione dei SPN! E inoltre VS 2005 mi fa aprire il sito remoto ma a random, mentre lavoro, si "arrabbia" e mi chiede di autenticarmi.

è una cosa strana, perchè se le policy sono corrette, il token è sempre lo stesso e quindi dovrebbe accedere senza problemi.

2) E' sbagliato lo scenario che ho messo in piedi? Quanti setspn devo fare?

è sbagliato che tu apri le applicazioni direttamente su un server di produzione/testing. lo sviluppo dovrebbe farsi in un ambiente separato.
3)Qual è lo scenario corretto per Windows Authentication con Application Pool separati per ogni sito con uno user custom? Vorremmo che una volta che l'utente si è loggato sul dominio con Windows non debba inserire nessun'altra credenziale per vedere l'applicazione.

i server web e AD sono in trust? se lo sono, può essere usato lo stesso token, altrimenti viene richiesto, ma solo la prima volta.

4)Quando gli sviluppatori si connettono al sito remoto è corretto che entrino automaticamente con le proprie credenziali o ha più senso loggarsi per es. con un utente locale amministratore della macchina uguale per tutti?

è corretto che ognuno entri con le proprie, così con l'auditing puoi capire anche a posteriori chi ha fatto cosa.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
3 messaggi dal 13 dicembre 2006
Daniele Bochicchio ha scritto:

1) il SPN deve essere creato sia col nome del server che col nome dell'alias?

ma il server web è nel dominio?

Si si, il web server è nel dominio

ma resta il problema della duplicazione dei SPN! E inoltre VS 2005 mi fa aprire il sito remoto ma a random, mentre lavoro, si "arrabbia" e mi chiede di autenticarmi.

è una cosa strana, perchè se le policy sono corrette, il token è sempre lo stesso e quindi dovrebbe accedere senza problemi.

Infatti è strano, invece la cosa non sembra accadere con VS.NET 2003. Mi perdo qualche impostazione?

2) E' sbagliato lo scenario che ho messo in piedi? Quanti setspn devo fare?

è sbagliato che tu apri le applicazioni direttamente su un server di produzione/testing. lo sviluppo dovrebbe farsi in un ambiente separato.

Le applicazioni vengono aperte e lavorate su un server di "sviluppo" che usiamo anche come ambiente di test. Esiste poi la produzione che non viene toccata dagli ambienti di sviluppo. Qual è però il modo migliore per sviluppare in team? Ognuno deve aprire i progetti in locale sulla propria macchina e poi deployarli in test / pro usando source safe per sinconizzarsi? Oppure va bene che tutti li aprano direttamente sullo stesso server? Tra l'altro adesso source safe non viene usato, perché bene o male un'applicazione viene gestita da un'unica persona, ma non è detto che si sempre così...


3)Qual è lo scenario corretto per Windows Authentication con Application Pool separati per ogni sito con uno user custom? Vorremmo che una volta che l'utente si è loggato sul dominio con Windows non debba inserire nessun'altra credenziale per vedere l'applicazione.

i server web e AD sono in trust? se lo sono, può essere usato lo stesso token, altrimenti viene richiesto, ma solo la prima volta.

I sistemisti mi hanno confermato che i due server sono nello stesso dominio e in trust.


4)Quando gli sviluppatori si connettono al sito remoto è corretto che entrino automaticamente con le proprie credenziali o ha più senso loggarsi per es. con un utente locale amministratore della macchina uguale per tutti?

è corretto che ognuno entri con le proprie, così con l'auditing puoi capire anche a posteriori chi ha fatto cosa.

Questo anche nel caso che accennavo prima in cui si sviluppa in locale sulla propria macchina e ci si connette al server solo per copiare il sito?

Riassumendo, aver bisogno inannanzi tutto di "dritte" su come sviluppare e far convivere correttamente applicazioni web tra un team di sviluppatori (che possono essere ASP.NET 1.X, ASP.NET 2 ma anche vecchie in ASP 3.0). Da qui capire le configurazioni corrette su AD tramite setspn per poter usare identità custom per gli application pool.

Grazie della disponibilità!

pointer

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.