Share via


Konfigurieren von Berechtigungen für Team-Buildbereitstellung

von Jason Lee

In diesem Thema wird beschrieben, wie Sie Berechtigungen konfigurieren, damit Ihr Buildserver Inhalte im Rahmen eines automatisierten Buildprozesses auf Webservern und Datenbankservern bereitstellen kann.

Dieses Thema ist Teil einer Reihe von Tutorials, die sich auf die Unternehmensbereitstellungsanforderungen eines fiktiven Unternehmens namens Fabrikam, Inc. beziehen. In dieser Tutorialreihe wird eine Beispiellösung – die Contact Manager-Lösung – verwendet, um eine Webanwendung mit einem realistischen Komplexitätsgrad darzustellen, einschließlich einer ASP.NET MVC 3-Anwendung, eines WCF-Diensts (Windows Communication Foundation) und eines Datenbankprojekts.

Die Bereitstellungsmethode im Mittelpunkt dieser Tutorials basiert auf dem unter Grundlegendes zur Projektdatei beschriebenen Ansatz für geteilte Projektdateien, bei dem der Buildprozess von zwei Projektdateien gesteuert wird– eine mit Buildanweisungen, die für jede Zielumgebung gelten, und eine mit umgebungsspezifischen Build- und Bereitstellungseinstellungen. Zur Buildzeit wird die umgebungsspezifische Projektdatei in die umgebungsunabhängige Projektdatei zusammengeführt, um einen vollständigen Satz von Buildanweisungen zu bilden.

Aufgabenübersicht

Wenn Sie den Team Foundation Server (TFS) 2010-Builddienst installieren, geben Sie die Identität an, mit der der Dienst ausgeführt werden soll. Standardmäßig ist dies das Netzwerkdienstkonto. Alternativ können Sie den Builddienst für die Ausführung mit einem Domänenkonto konfigurieren.

Alle Bereitstellungsaufgaben, die Windows-Authentifizierung erfordern und die Sie mit Team Build automatisieren möchten, werden mithilfe der Builddienstidentität ausgeführt. Daher müssen Sie der Builddienstidentität alle erforderlichen Berechtigungen auf Ihren Webservern und Ihren Datenbankservern erteilen.

Hinweis

Das Netzwerkdienstkonto verwendet das Computerkonto, um sich bei anderen Computern zu authentifizieren. Computerkonten haben das Format [Domänenname][Computername]$, z. B. FABRIKAM\TFSBUILD$. Wenn Ihr Builddienst mit der Netzwerkdienstidentität ausgeführt wird, sollten Sie daher der Computerkontoidentität für Ihren Buildserver alle erforderlichen Berechtigungen erteilen.

Konfigurieren von Webserverberechtigungen

Wie unter Auswählen des richtigen Ansatzes für die Webbereitstellung beschrieben, gibt es zwei Standard Ansätze, die Sie verwenden können, wenn Sie Webpakete auf einem Remotewebserver bereitstellen möchten:

  • Stellen Sie die Anwendung von einem Remotestandort aus bereit, indem Sie den Web Deployment Agent Service (auch als Remote-Agent bezeichnet) auf dem Zielserver als Zielserver verwenden.
  • Stellen Sie die Anwendung von einem Remotestandort aus bereit, indem Sie auf den Web Deploy-Handler für Internetinformationsdienste (IIS) auf dem Zielserver abzielen.

Für den Remote-Agent gelten in diesem Fall zwei wichtige Einschränkungen:

  • Der Remote-Agent unterstützt nur die NTLM-Authentifizierung. Anders ausgedrückt: Die Bereitstellung muss die Builddienstidentität verwenden. Sie können keine Identität eines anderen Kontos annehmen.
  • Um den Remote-Agent verwenden zu können, muss das Konto, das die Bereitstellung durchführt, ein Administrator auf dem Zielserver sein.

Zusammen machen diese beiden Einschränkungen den Remote-Agent-Ansatz für eine automatisierte Team Build-Bereitstellung unerwünscht. Um diesen Ansatz zu verwenden, müssen Sie das Builddienstkonto als Administrator auf allen Zielwebservern festlegen.

Im Gegensatz dazu bietet der Web Deploy-Handler-Ansatz verschiedene Vorteile:

  • Der Web Deploy-Handler unterstützt die Standardauthentifizierung über HTTPS, mit der Sie die Anmeldeinformationen eines alternativen Kontos an das IIS-Webbereitstellungstool (Web Deploy) übergeben können.
  • Sie können Zielwebserver so konfigurieren, dass Benutzer ohne Administratorrechte Mithilfe des Web Deploy-Handlers Inhalte auf bestimmten IIS-Websites bereitstellen können.

Daher ist es eindeutig besser, den Web Deploy-Handler als Ziel zu verwenden, wenn Sie die Bereitstellung von Webpaketen über Team Build automatisieren. Dies ist der empfohlene Prozess:

  1. Erstellen Sie ein Domänenkonto mit geringen Berechtigungen, das für die Bereitstellung verwendet werden soll.
  2. Konfigurieren Sie den Web Deploy-Handler, und erteilen Sie dem Konto die erforderlichen Berechtigungen zum Bereitstellen von Inhalten auf einer bestimmten IIS-Website, wie unter Konfigurieren eines Webservers für web Deploy Publishing (Web Deploy Handler) beschrieben.
  3. Rufen Sie Web Deploy auf, und richten Sie den Web Deploy-Handler an, indem Sie die Standardauthentifizierung und die Anmeldeinformationen des von Ihnen erstellten Domänenkontos angeben, um die Bereitstellung durchzuführen.

In der Contact Manager-Beispiellösung geben Sie den Authentifizierungstyp (Basic oder NTLM), die Web Deploy-Anmeldeinformationen und die Endpunktadresse (Remote-Agent oder Web Deploy Handler) in der umgebungsspezifischen Projektdatei an. Diese Werte werden verwendet, um einen Web Deploy-Befehl zu formulieren und auszuführen, wenn die Projektdatei ausgeführt wird. Weitere Informationen finden Sie unter Bereitstellen von Webpaketen.

Weitere Informationen zum Konfigurieren des Web Deploy-Handlers, einschließlich der Konfiguration von Berechtigungen, finden Sie unter Konfigurieren eines Webservers für die Web Deploy-Veröffentlichung (Web Deploy-Handler). Weitere Informationen zum Konfigurieren des Remote-Agents finden Sie unter Konfigurieren eines Webservers für die Web Deploy-Veröffentlichung (Remote-Agent).

Konfigurieren von Datenbankserverberechtigungen

Um eine Datenbank in SQL Server bereitzustellen, müssen Sie:

  • Erstellen Sie eine Anmeldung für das Bereitstellungskonto auf der SQL Server instance.
  • Erteilen Sie der DBCreator-Anmeldeberechtigung für die SQL Server instance.
  • Fügen Sie nach der ersten Bereitstellung die Anmeldung der rolle db_owner in der Zieldatenbank hinzu. Dies ist erforderlich, da Sie bei nachfolgenden Bereitstellungen eine vorhandene Datenbank ändern, anstatt eine neue Datenbank zu erstellen.

Sie können sich bei einem SQL Server instance entweder mithilfe der NTLM-Authentifizierung oder SQL Server Authentifizierung authentifizieren:

  • Wenn Sie die NTLM-Authentifizierung verwenden, müssen Sie dem Builddienstkonto die oben beschriebenen Berechtigungen erteilen.
  • Wenn Sie SQL Server Authentifizierung verwenden, müssen Sie dem SQL Server-Konto die oben beschriebenen Berechtigungen erteilen. Außerdem müssen Sie den SQL Server Benutzernamen und das Kennwort in die Verbindungszeichenfolge einfügen, die Sie zum Bereitstellen der Datenbank verwenden.

Ausführliche Informationen zum Konfigurieren von Berechtigungen für die Datenbankbereitstellung finden Sie unter Konfigurieren eines Datenbankservers für die Web Deploy-Veröffentlichung.

Zusammenfassung

An diesem Punkt sollten Sie die erforderlichen Berechtigungen zusammen mit den Authentifizierungsoptionen kennen, die Ihnen beim Automatisieren von Webanwendungs- und Datenbankbereitstellungen über Team Build zur Seite stehen. Sie sollten auch in der Lage sein, die erforderlichen Berechtigungen auf IIS-Webservern und SQL Server Datenbankservern zu implementieren.

Weitere Informationen

Weitere Informationen zum Konfigurieren von Windows Server-Umgebungen zur Unterstützung der Remotebereitstellung finden Sie unter Konfigurieren von Serverumgebungen für die Webbereitstellung.