Team Foundation Server, autenticazione di base e autenticazione del digest
Aggiornamento: novembre 2007
Visual Studio 2008 può supportare le modalità di autenticazione di base e digest. Configurando la distribuzione di Team Foundation Server per l'utilizzo di HTTPS con Secure Sockets Layer (SSL) e l'autenticazione di base o digest, è possibile supportare connessioni esterne a Team Foundation Server senza dover utilizzare una connessione VPN.
Configurazioni
Per supportare connessioni esterne alle distribuzioni di Team Foundation Server, è necessario configurare Internet Information Services (IIS) per l'attivazione dell'autenticazione di base e/o digest. È inoltre necessario configurare un filtro ISAPI (Internet Server Application Programming Interface). I filtri ISAPI sono file DLL utilizzabili per modificare e migliorare le funzionalità fornite da IIS. I filtri ISAPI vengono sempre eseguiti in un server che esegue IIS. É necessario configurare il filtro ISAPI, che è parte di SP1, con gli indirizzi IP dei proxy Web e/o dei client necessari per l'utilizzo dell'autenticazione di base o digest.
Autenticazione di base e digest
L'autenticazione di base fa parte della specifica HTTP 1.0 e utilizza account utente Windows. Durante l'autenticazione di base, il browser chiede all'utente un nome utente e una password. Queste informazioni sono trasmesse attraverso HTTP utilizzando la codifica Base64. Per impostazione predefinita, l'autenticazione di base richiede che l'account utente Windows disponga di diritti di accesso locale al server Web. È possibile utilizzare l'autenticazione di base sia nelle distribuzioni basate su gruppi di lavoro sia in quelle basate su domini. Benché sia supportata dalla maggior parte dei server Web, dei server proxy e dei browser, l'autenticazione di base non è sicura. Poiché la decodifica di dati con codifica Base64 è un'operazione facile, è come se l'autenticazione di base inviasse la password come testo normale. Un utente che controlli le comunicazioni in rete e disponga di strumenti facilmente reperibili può intercettare e decifrare queste password con facilità.
L'autenticazione digest è un meccanismo In attesa/Risposta che invia in rete un digest (anche detto hash) anziché una password. Durante l'autenticazione digest, IIS invia una richiesta al client per creare un digest che successivamente invia al server. Il client invia un digest basato sulla password dell'utente e dati noti sia al client sia al server come risposta alla richiesta. Il server utilizza lo stesso processo del client per creare un propio digest, con le informazioni utente ottenute da Active Directory. Se il digest creato dal server corrisponde a quello creato dal client, il client viene autenticato in IIS. È possibile utilizzare l'autenticazione digest solo nelle distribuzioni basate su domini Active Directory. Da sola, l'autenticazione digest rappresenta un piccolo miglioramento rispetto all'autenticazione di base. Un pirata informatico potrebbe registrare la comunicazione tra client e server e utilizzare tali informazioni per ripetere la transazione. L'autenticazione digest presenta anche dipendenze dal protocollo HTTP 1.1. Questo protocollo non è supportato da tutti i browser Web. Inoltre, è necessario configurare correttamente l'autenticazione digest altrimenti i tentativi di accesso a Team Foundation Server avranno esito negativo. Non scegliere l'autenticazione digest se le distribuzioni non soddisfano tutti i requisiti necessari. Per ulteriori informazioni sull’autenticazione digest, vedere il sito Web Microsoft all’indirizzo: https://go.microsoft.com/fwlink/?LinkID=89709 (informazioni in lingua inglese).
Limiti
Oltre ai requisiti di dominio e gruppo di lavoro indicati in precedenza, sia l'autenticazione di base sia l'autenticazione digest non sono sufficienti da sole a garantire la sicurezza della rete per client esterni. È pertanto opportuno non configurare Team Foundation Server per il supporto di client esterni, a meno che anche queste connessioni non siano configurate per richiedere HTTPS con SSL.
Configurazione del filtro ISAPI
Il filtro ISAPI può essere configurato per applicare regole a qualsiasi insieme specificato di indirizzi IP. Benché la maggior parte degli amministratori sia principalmente interessata a configurare le regole dei filtri ISAPI per indirizzi IP esterni, è possibile configurare tali regole anche per gli indirizzi interni. Qualsiasi indirizzo IP configurato nelle regole del filtro ISAPI deve attenersi alle regole specificate nel filtro. A seconda dell'impostazione RequireSecurePort, la connessione a Team Foundation Server degli indirizzi non specificati nel file può essere o non essere consentita.
Il filtro ISAPI utilizza il file AuthenticationFilter.ini per le impostazioni di configurazione. È necessario configurare questo file con impostazioni appropriate alla distribuzione in uso. Il file può utilizzare le chiavi e i valori di configurazione seguenti:
Chiave |
Valori supportati |
---|---|
RequireSecurePort |
True False |
ProxyIPList |
IPaddress (può corrispondere a più indirizzi, separati da punto e virgola) |
SubnetList |
IPaddress/subnetmask (può corrispondere a più indirizzi, separati da punto e virgola) |
[config] |
Intestazione di sezione per il file del filtro ISAPI |
Le chiavi sono definite ulteriormente come segue:
RequireSecurePort Se si configura RequireSecurePort come True, tutte le connessioni dovranno utilizzare HTTPS/SSL e l'autenticazione digest o di base a meno che non siano uno degli indirizzi specificati in SubnetList. Se si configura RequireSecurePort come False, solo le connessioni che utilizzano gli indirizzi specificati in ProxyIPList dovranno utilizzare HTTPS/SSL e l'autenticazione digest o di base.
ProxyIPList Indirizzo o indirizzi IP per i quali si desidera applicare l'autenticazione digest o di base. Il modo più facile per comprendere il concetto alla base di questa chiave consiste nel considerarla come "Richiedi autenticazione di base o digest solo per questi indirizzi". Agli indirizzi specificati per questa chiave sarà richiesto l'utilizzo dell'autenticazione di base o digest e di HTTPS/SSL. Questa chiave è prioritaria rispetto a SubnetList. Se la chiave ProxyIPList è presente, la chiave SubnetList e i relativi valori verranno ignorati.
SubnetList Coppia o coppie di indirizzo IP e subnet mask per cui non si desidera applicare l'autenticazione digest o di base. Il modo più facile per comprendere il concetto alla base di questa chiave consiste nel considerarla come "Richiedi autenticazione di base o digest per tutti gli indirizzi a eccezione di questi". Agli indirizzi specificati per questa chiave non sarà richiesto l'utilizzo dell'autenticazione di base o digest e di HTTPS/SSL. A qualsiasi indirizzo non specificato per questa chiave sarà invece richiesto l'utilizzo dell'autenticazione di base o digest. Se è presente la chiave ProxyIPList nel filtro ISAPI, la chiave SubnetList e i relativi valori verranno ignorati.