30 messaggi dal 20 giugno 2001
Salve a tutti.

Sto realizzando una piccola applicazione web con una zona riservata.
Utilizzo Visual Studio 2005
L'applicazione deve girare in intranet (dominio Windows 2003) e quindi ho scelto per comodità l'autenticazione windows.
Ecco i miei passi:
1) Creazione Web su IIS (accesso anonimo consentito)
2) Creazione cartella Admin all'interno del web e creazione della sua applicazione (consentito solo accesso tramite autenticazione windows. Non anonimo)
3) Default.aspx nella root del sito. Chiunque la visita regolarmente.
4) Web.config
************************************************************
<system.web>
<authentication mode="Windows"/>
<identity impersonate="true"/>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="Admin">
<system.web>
<authorization>
<allow users="MIODOMINIO\MioUtente"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
************************************************************

5) Pagina default.aspx dentro la zona admin
************************************************************
String sConnDatabaseFile = "Data Source=DEV\\SQLEXPRESS;Initial Catalog=Database;Trusted_Connection=Yes;";

String sSvuota = "DELETE FROM Albo Where Valore<100";

System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection(sConnDatabaseFile);

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();

cmd.CommandText = sSvuota;
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
************************************************************

Ed eccoci ai problemi:
1)L'utente che naviga sul sito ha fatto accesso alla sua workstation e quindi al dominio con le credenziali di MioUtente. Appena richiesta la pagina protetta viene presentata nuovamente la finestra di autenticazione. Perchè? Non dovrebbe essere già autenticato? Ripetendo le credenziali accede ed esegue la pagina.
2) L'esecuzione della pagina si blocca su "sqlConnection1.Open();" con l'errore "Accesso non riuscito per l'utente 'NT AUTHORITY\ACCESSO ANONIMO'.". Con questa configurazione (se ho capito e fatto bene) non dovrei presentarmi all'SQL come "MIODOMINIO\MioUtente" (utente abilitato ad eliminare record sul db)?

Spero di aver spiegato chiaramente i miei problemi.

Grazie in anticipo per tutti i suggerimenti.

Massimo
mlsoftware wrote:
Salve a tutti.

Sto realizzando una piccola applicazione web con una zona riservata. Utilizzo Visual Studio 2005
L'applicazione deve girare in intranet (dominio Windows 2003) e quindi ho scelto per comodità l'autenticazione windows.
Ecco i miei passi:
1) Creazione Web su IIS (accesso anonimo consentito)

devi togliere l'accesso anonimo e mettere solo quello con auth, altrimenti IIS non invia le credenziali dell'utente, ma quelle anonime.
cmq, per questioni di sicurezza meglio utilizzare un solo utente su SQL Server che l'auth integrata.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
30 messaggi dal 20 giugno 2001
Ciao Daniele e grazie per la tua risposta
devi togliere l'accesso anonimo e mettere solo quello con auth, altrimenti IIS non invia le credenziali dell'utente, ma quelle anonime.


Quello che mi suggerisci è stato fatto nel mio punto 2

2) Creazione cartella Admin all'interno del web e creazione della sua applicazione (consentito solo accesso tramite autenticazione windows. Non anonimo)


Devo per forza autenticare tutto il web site?

cmq, per questioni di sicurezza meglio utilizzare un solo utente su SQL Server che l'auth integrata.


Quindi passo alla autenticazione via form o mi sfugge qualcosa?

Grazie.
mlsoftware wrote:
Devo per forza autenticare tutto il web site?

certo, altrimenti l'effetto è che quando l'auth è anonima, cerca di utilizzare quella per SQL Server, che come hai notato non ha le credenziali, giustamente, per l'utente specificato.

Quindi passo alla autenticazione via form o mi sfugge qualcosa?

è una cosa differente, stai confondendo i meccanismi di delegation dell'identità del worker process e dell'accesso a SQL Server con quelli di autenticazione ed autorizzazione applicativa.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
30 messaggi dal 20 giugno 2001
Ciao Daniele,

è una cosa differente, stai confondendo i meccanismi di delegation dell'identità del worker process e dell'accesso a SQL Server con quelli di autenticazione ed autorizzazione applicativa.


il mio obbiettivo è quello di realizzare un web site con una zona ad accesso "anonimo" e che quindi esegue dei comuni select su SQL per visualizzare delle informazioni generali ed una zona ad accesso limitato autenticata sul dominio dove si eseguo operazioni di insert, delete e update che (credo) debbano essere deputate all'utente autenticato in quel momento o comunque al suo gruppo di apprtenenza nel dominio con conseguente configurazione dell'SQL appunto per tali utenti/gruppi.

Dove sto sbagliando?

Grazie ancora.
2.410 messaggi dal 13 febbraio 2003
Contributi
cmq, per questioni di sicurezza meglio utilizzare un solo utente su SQL Server che l'auth integrata.


sorry boss ma permettimi di dissentire, per avere una maggior granularità e un maggior controllo sulle security lato mssql preferisco usare autenticazione integrata ev. su connessione https per stare tranquillo (tanto si tratta di intranet) con un solo utente su MSSQL non hai alcun controllo di chi fa cosa ovviamente a patto di non voler gestire tutto lato applicativo ma a questo punto sorge spontaneo chiedersi ma perchè rifare in doppio quello che già c'è?
ithost [MVP] [Staff] wrote:
sorry boss ma permettimi di dissentire, per avere una maggior granularità e un maggior controllo sulle security lato mssql preferisco usare autenticazione integrata ev. su connessione https per stare tranquillo (tanto si tratta di intranet)

appunto, tu daresti accesso, in una intranet, a 100-200 o anche 50 utenti in SQL Server, con conseguente possibilità di accedere praticamente senza nessun limite al db, piuttosto che creare un utente ad hoc che possa fare questa cosa solo dal server web?
è decisamente questione di scelte, ma la regola numero uno è sempre ridurre la superficie potenziale di attacco ed il fatto di far girare l'app pool con impersonate, delegation e conseguente accesso a SQL Server con l'utente con cui il quale fai logon sulla tua postazione a me personalmente fa venire i brividi.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
mlsoftware wrote:
Dove sto sbagliando?

in niente. nel tuo caso crei una utenza di SQL Server e la usi, senza impersonation, sia nella parte pubblica che in quella ad accesso riservato.
Grazie ancora.

prego.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.