Questo post discute e propone le metodologie da utilizzare quando s'intende utilizzare Microsoft SQL Server come Database e Windows Authentication come metodo di autentificazione.

Windows Authentication

Windows authentication è decisamente la più sicura metodologia da applicare quando ci si connette a Microsoft SQL Server per i seguenti motivi:

1) Al programmatore non è riservata alcuna operazione di managing relative alle credenziali e sopratutto queste non sono trasmesse in rete

2) Le credenziali (username e password) non sono inglobate nelle connection strings.

3) Avvalendosi di sistemi di password expiration periods, lunghezza minima ed account lock successivo a multiple richieste invalide, Logon Security fornisce un buon punto di partenza.

E' consigliato utilizzare la Windows Authentication nei seguenti scenari:

x) E' stato deciso di utilizzare il modello trusted subsystem, le connessioni a Microsoft SQL Server vengono effettuate utilizzando una single fixed identity. Se ci si connette tramite ASP.NET, questo significa che la Web Application non è direttamente configurata per Impersonation.

In questo caso qui, è necessario utilizzare ASP.NET Process Identity od un Serviced Component Identity.

x) E' stato deciso intenzionalmente di delegare l'originale caller security context per utilizzare delegation. (NB: Prendere una decisione del genere significa essere a conoscenza del fatto che s'intende sacrificare la scalabilità  dell'applicazione).

Windows Authentication -  Considerazioni

x) Utilizzare un account ASP.NET di tipo leasted privilege (account con privilegi minimi per eseguire le operazioni necessarie), evitando così di dare il temutissimo privilegio "Act as a part of the operating system".

x) Determinare i frammenti di codice che richiedono privilegi addizionali, e, utilizzarli con un serviced component che esegue una applicazione out-of-process Enterprise Services.

Windows Authentication -  Opzioni di connessione

Ci sono diverse opzioni da scegliere quando si decide di utilizzare la Windows Authentication quando ci si connette a Microsoft SQL Server da una applicazione ASP.NET (o WebService, o Remote Component).

x) Utilizzare ASP.NET Process Identity
x) Utilizzare le fixed identity con ASP.NET
x) Utilizzare i Serviced Components
x) Utilizzare l'API LogonUser per impersonificare una specifica identity.
x) Utilizzare la caller identity
x) Utilizzare l'account Internet anonimo

Windows Authentication -  Raccomandazioni

La raccomandazione è quella di configurare un account utente locale ASP.NET cambiando la password in un valore conosciuto nel web server e creare un account mirror nel server database con le stesse credenziali.

Questa tecnica, naturalmente, può essere utilizza se si possiede il controllo del database target. Con questa opzione si possono utilizzare degli account ASP.NET di tipo leasted. Il vantaggio principale derivato da questo metodo è la possibilità di lavorare su diversi non-trusting networks e bypassare i firewalls. Dico questo perchè spesso alcuni firewall bloccano le porte necessarie alla Windows Authentication per funzionare.

powered by IMHO 1.3