Sicurezza di IIS
In questo argomento viene descritta la modalità con la quale Microsoft SQL Server Compact 3.5 si basa su:
Autenticazione IIS
Autorizzazione IIS
Crittografia IIS
Autenticazione IIS
Quando si configura Agente server di SQL Server Compact 3.5, viene specificato se i client devono eseguire l'autenticazione Microsoft Internet Information Services (IIS) al momento della connessione ad Agente server di SQL Server Compact 3.5. Sono disponibili tre forme di autenticazione IIS:
Accesso anonimo
Autenticazione di base
Autenticazione integrata di Windows
La maggior parte delle applicazioni Internet utilizza in genere l'autenticazione di base e la crittografia SSL (Secure Sockets Layer).
Accesso anonimo
Con l'accesso anonimo, IIS non esegue l'autenticazione dei client. Tutte le operazioni eseguite da Agente server di SQL Server Compact 3.5 per conto del client vengono completate con l'identità di Account Internet Guest. Per impostazione predefinita, questo account è IUSR_nomecomputer, ma è possibile designare come Account Internet Guest un diverso account utente di Windows.
Autenticazione di base
Con l'autenticazione di base, il client SQL Server Compact 3.5 deve specificare il nome utente e la password di un account di Windows valido. IIS tenta di accedere mediante il nome utente e la password specificati dal client. Se il tentativo di accesso ha esito positivo, Agente server di SQL Server Compact 3.5 viene eseguito con l'identità dell'account utente di Windows specificato. Se il tentativo di accesso ha esito negativo, la richiesta del client viene rifiutata. L'autenticazione di base può essere utilizzata per applicazioni sia Internet che Intranet. Per l'autenticazione di base, è necessario che ogni client disponga di un account di Windows valido, con il nome utente e la password corrispondenti.
Importante
Per impostazione predefinita, l'autenticazione di base determina il passaggio in rete del nome utente e della password con codifica base64. Ciò può rappresentare un rischio in termini di sicurezza in caso di intercettazione dello scambio di password, poiché la codifica base64 può essere facilmente decodificata. Per proteggere la password utente, è opportuno utilizzare la crittografia SSL (Secure Sockets Layer) ogni volta che viene utilizzata l'autenticazione di base. Per ulteriori informazioni, vedere Configurazione della crittografia SSL.
Autenticazione integrata di Windows
L'autenticazione integrata di Windows presenta un funzionamento analogo all'autenticazione di base. Il client SQL Server Compact 3.5 deve specificare il nome utente e la password di un account di Windows valido. IIS tenta di accedere mediante il nome utente e la password. Se il tentativo di accesso ha esito positivo, Agente server di SQL Server Compact 3.5 viene eseguito con l'identità dell'account utente di Windows. Se il tentativo di accesso ha esito negativo, la richiesta di sincronizzazione del client viene rifiutata. Il principale vantaggio offerto dall'autenticazione integrata di Windows rispetto all'autenticazione di base consiste nel fatto che l'autenticazione integrata di Windows non trasmette in rete il nome utente e la password del client in forma non crittografata. Viene così evitato il rischio di intercettazione della password. L'autenticazione integrata di Windows rappresenta la soluzione ideale per le applicazioni Intranet. L'autenticazione integrata di Windows viene utilizzata raramente per le applicazioni Internet, poiché non può essere applicata a un server proxy o un firewall.
Nota
Poiché Microsoft Windows CE 4.2 non supporta l'autenticazione con digest, le soluzioni per la connettività di SQL Server Compact 3.5 non supportano questa forma di autenticazione.
Autorizzazione IIS
Dopo l'autenticazione del client IIS, l'autorizzazione IIS determina se il client può richiamare Agente server di SQL Server Compact 3.5. È possibile controllare gli utenti che possono sfruttare la connettività di SQL Server Compact 3.5 controllando i client in grado di accedere ad Agente server di SQL Server Compact 3.5.
Per il controllo dell'accesso, IIS fornisce i meccanismi seguenti:
IIS controlla innanzitutto l'indirizzo del client rispetto alle eventuali restrizioni per gli indirizzi IP configurate. È possibile configurare il server Web in modo da impedire a determinati computer o gruppi di computer oppure a specifiche reti di accedere ad Agente server di SQL Server Compact 3.5. Quando un client tenta inizialmente di accedere ad Agente server di SQL Server Compact 3.5, IIS controlla l'indirizzo IP del computer rispetto alle restrizioni per gli indirizzi IP impostate sul server. Se all'indirizzo IP viene negato l'accesso, la richiesta di sincronizzazione del client viene rifiutata con il messaggio 403 di accesso non consentito.
Se IIS viene configurato in modo da richiedere l'autenticazione, IIS controlla se il client dispone di un account utente di Windows valido, come descritto nella sezione Autenticazione IIS di questo documento. Se l'account utente non è valido, la richiesta di sincronizzazione del client viene rifiutata con il messaggio 403 di accesso non consentito.
IIS controlla quindi le autorizzazioni Web. Il controllo di sicurezza di IIS non è rilevante ai fini delle soluzioni per la connettività di SQL Server Compact 3.5.
IIS controlla infine le autorizzazioni NTFS per Agente server di SQL Server Compact 3.5 per verificare se l'utente che esegue la connessione dispone delle autorizzazioni appropriate.
Nota
Nonostante IIS possa essere utilizzato anche con un file system FAT (File Allocation Table), è consigliabile utilizzare NTFS. NTFS consente di utilizzare elenchi di controllo di accesso (ACL, Access Control List) per concedere o negare l'accesso ad Agente server di SQL Server Compact 3.5 e ai file di messaggio di input e di output sul sistema IIS.
Crittografia IIS
Al momento della configurazione di Agente server di SQL Server Compact 3.5, è possibile specificare la crittografia SSL. Quando si specifica la crittografia SSL, tutte le comunicazioni tra Agente client di SQL Server Compact 3.5 e Agente server di SQL Server Compact 3.5 verranno crittografate. Per ulteriori informazioni, vedere Configurazione della crittografia SSL.
È opportuno utilizzare la crittografia SSL nelle situazioni seguenti:
Se si configura IIS per l'utilizzo dell'autenticazione di base.
La crittografia è essenziale per proteggere la password Internet dell'utente. Per impostazione predefinita, l'autenticazione di base determina la trasmissione in rete del nome utente e della password con codifica base64. Ciò può rappresentare un rischio in termini di sicurezza in caso di intercettazione dello scambio di password, poiché la codifica base64 può essere facilmente decodificata. È opportuno utilizzare la crittografia SSL ogni volta che viene utilizzata l'autenticazione di base, allo scopo di proteggere la password Internet dell'utente.
Solo per RDA: se l'applicazione specifica un parametro OLEDBConnectionString contenente una password.
I metodi Pull, Push e SubmitSQL RDA richiedono un parametro OLEDBConnectionString. Questa stringa di connessione viene passata in rete in forma non crittografata. Ciò può rappresentare un rischio in termini di sicurezza in caso di intercettazione dello scambio di password.
Solo per la replica: se il server di pubblicazione o il server di distribuzione di SQL Server utilizza l'autenticazione di SQL Server.
Il server di distribuzione utilizza l'autenticazione di SQL Server se nella proprietà DistributorSecurityMode viene specificato DB_AUTHENTICATION. Il server di pubblicazione utilizza l'autenticazione di SQL Server se nella proprietà PublisherSecurityMode viene specificato DB_AUTHENTICATION. In caso di utilizzo dell'autenticazione di SQL Server, i valori di DistributorPassword e PublisherPassword vengono passati in rete in forma non crittografata. Ciò può rappresentare un rischio in termini di sicurezza in caso di intercettazione dello scambio di password. È consigliabile utilizzare la crittografia SSL ogni volta che viene utilizzata l'autenticazione di SQL Server, allo scopo di proteggere DistributorPassword e PublisherPassword.