Configurazione delle autorizzazioni per la distribuzione di Team Build

di Jason Lee

In questo argomento viene descritto come configurare le autorizzazioni per consentire al server di compilazione di distribuire il contenuto nei server Web e nei server di database come parte di un processo di compilazione automatizzato.

Questo argomento fa parte di una serie di esercitazioni basate sui requisiti di distribuzione aziendali di una società fittizia denominata Fabrikam, Inc. Questa serie di esercitazioni usa una soluzione di esempio, la soluzione Contact Manager, per rappresentare un'applicazione Web con un livello realistico di complessità, tra cui un'applicazione ASP.NET MVC 3, un servizio Windows Communication Foundation (WCF) e un progetto di database.

Il metodo di distribuzione al centro di queste esercitazioni si basa sull'approccio split project file descritto in Informazioni sul file di progetto, in cui il processo di compilazione è controllato da due file di progetto, uno contenente le istruzioni di compilazione applicabili a ogni ambiente di destinazione e uno contenente le impostazioni di compilazione e distribuzione specifiche dell'ambiente. In fase di compilazione, il file di progetto specifico dell'ambiente viene unito al file di progetto indipendente dall'ambiente per formare un set completo di istruzioni di compilazione.

Panoramica delle attività

Quando si installa il servizio di compilazione Team Foundation Server (TFS) 2010, specificare l'identità con cui si vuole eseguire il servizio. Per impostazione predefinita, si tratta dell'account Servizio di rete. In alternativa, è possibile configurare il servizio di compilazione per l'esecuzione usando un account di dominio.

Tutte le attività di distribuzione che richiedono autenticazione di Windows e che si prevede di automatizzare usando Team Build, verranno eseguite usando l'identità del servizio di compilazione. Di conseguenza, sarà necessario concedere all'identità del servizio di compilazione le autorizzazioni necessarie per i server Web e i server di database.

Nota

L'account del servizio di rete usa l'account computer per eseguire l'autenticazione ad altri computer. Gli account computer hanno il formato [nome di dominio][nome computer]$, ad esempio FABRIKAM\TFSBUILD$. Di conseguenza, se il servizio di compilazione viene eseguito usando l'identità del servizio di rete, è necessario concedere le autorizzazioni necessarie all'identità dell'account computer per il server di compilazione.

Configurazione delle autorizzazioni del server Web

Come descritto in Scelta dell'approccio corretto alla distribuzione Web, è possibile usare due approcci principali per distribuire pacchetti Web in un server Web remoto:

  • Distribuire l'applicazione da una posizione remota specificando come destinazione il servizio Web Deployment Agent (noto anche come agente remoto) nel server di destinazione.
  • Distribuire l'applicazione da una posizione remota specificando come destinazione il gestore distribuzione Web Internet Information Services (IIS) nel server di destinazione.

L'agente remoto presenta due limitazioni chiave in questo caso:

  • L'agente remoto supporta solo l'autenticazione NTLM. In altre parole, la distribuzione deve usare l'identità del servizio di compilazione, non è possibile rappresentare un altro account.
  • Per usare l'agente remoto, l'account che esegue la distribuzione deve essere un amministratore nel server di destinazione.

Insieme, queste due limitazioni rendono indesiderato l'approccio dell'agente remoto per una distribuzione automatizzata di Team Build. Per usare questo approccio, è necessario rendere l'account del servizio di compilazione un amministratore in qualsiasi server Web di destinazione.

Al contrario, l'approccio gestore distribuzione Web offre vari vantaggi:

  • Il gestore distribuzione Web supporta l'autenticazione di base tramite HTTPS, che consente di passare le credenziali di un account alternativo allo strumento di distribuzione Web IIS (distribuzione Web).
  • È possibile configurare i server Web di destinazione per consentire agli utenti non amministratori di distribuire il contenuto in siti Web IIS specifici usando il gestore distribuzione Web.

Di conseguenza, è chiaramente preferibile scegliere come destinazione il gestore distribuzione Web quando si automatizza la distribuzione di pacchetti Web da Team Build. Questo è il processo consigliato:

  1. Creare un account di dominio con privilegi limitati da usare per la distribuzione.
  2. Configurare il gestore distribuzione Web e concedere all'account le autorizzazioni necessarie per distribuire il contenuto in un sito Web IIS specifico, come descritto in Configurazione di un server Web per la pubblicazione distribuzione Web (gestore distribuzione Web).
  3. Richiamare Distribuzione Web e specificare come destinazione il gestore distribuzione Web, usando l'autenticazione di base e specificando le credenziali dell'account di dominio creato, per eseguire la distribuzione.

Nella soluzione di esempio Contact Manager specificare il tipo di autenticazione (basic o NTLM), le credenziali di distribuzione Web e l'indirizzo dell'endpoint (agente remoto o Gestore distribuzione Web) nel file di progetto specifico dell'ambiente. Questi valori vengono usati per formulare ed eseguire un comando Distribuzione Web quando viene eseguito il file di progetto. Per altre informazioni, vedere Distribuzione di pacchetti Web.

Per altre informazioni sulla configurazione del gestore distribuzione Web, inclusa la configurazione delle autorizzazioni, vedere Configurazione di un server Web per la pubblicazione di distribuzione Web (gestore distribuzione Web). Per altre informazioni sulla configurazione dell'agente remoto, vedere Configuring a Web Server for Web Deploy Publishing (Remote Agent).

Configurazione delle autorizzazioni del server di database

Per distribuire un database in SQL Server, è necessario:

  • Creare un account di accesso per l'account di distribuzione nell'istanza di SQL Server.
  • Concedere le autorizzazioni DBCreator di accesso per l'istanza di SQL Server.
  • Dopo la distribuzione iniziale, aggiungere l'account di accesso al ruolo db_owner nel database di destinazione. Questa operazione è necessaria perché nelle distribuzioni successive si modifica un database esistente invece di creare un nuovo database.

È possibile eseguire l'autenticazione in un'istanza di SQL Server usando l'autenticazione NTLM o l'autenticazione SQL Server:

  • Se si usa l'autenticazione NTLM, è necessario concedere le autorizzazioni descritte in precedenza all'account del servizio di compilazione.
  • Se si usa SQL Server autenticazione, è necessario concedere le autorizzazioni descritte in precedenza all'account SQL Server. È anche necessario includere il SQL Server nome utente e la password nella stringa di connessione usata per distribuire il database.

Per informazioni dettagliate su come configurare le autorizzazioni per la distribuzione di database, vedere Configurazione di un server di database per la pubblicazione di distribuzione Web.

Conclusione

A questo punto, è necessario comprendere le autorizzazioni necessarie, insieme alle opzioni di autenticazione aperte, quando si automatizzano le distribuzioni di applicazioni Web e database da Team Build. È anche possibile implementare le autorizzazioni necessarie per i server Web IIS e SQL Server server di database.

Altre informazioni

Per altre informazioni sulla configurazione degli ambienti server Windows per supportare la distribuzione remota, vedere Configurazione degli ambienti server per la distribuzione Web.