次の方法で共有


チーム ビルド配置のアクセス許可を構成する

作成者: Jason Lee

このトピックでは、ビルド サーバーが自動ビルド プロセスの一環として Web サーバーとデータベース サーバーにコンテンツを展開できるようにアクセス許可を構成する方法について説明します。

このトピックでは、Fabrikam, Inc という架空の会社のエンタープライズ展開要件に基づく一連のチュートリアルの一部を構成します。このチュートリアル シリーズでは、サンプル ソリューションである Contact Manager ソリューションを使用して、ASP.NET MVC 3 アプリケーション、Windows Communication Foundation (WCF) サービス、データベース プロジェクトなど、複雑さの現実的なレベルの Web アプリケーションを表します。

これらのチュートリアルの中心にある配置方法は、「プロジェクト ファイルの 理解」で説明されている分割プロジェクト ファイルのアプローチに基づいています。この方法では、ビルド プロセスは 2 つのプロジェクト ファイルによって制御されます。1 つは、すべての移行先環境に適用されるビルド命令を含み、1 つは環境固有のビルドと配置設定を含みます。 ビルド時に、環境固有のプロジェクト ファイルが環境に依存しないプロジェクト ファイルにマージされ、ビルド手順の完全なセットが形成されます。

タスクの概要

Team Foundation Server (TFS) 2010 ビルド サービスをインストールするときに、サービスを実行する ID を指定します。 既定では、これは Network Service アカウントです または、ドメイン アカウントを使用して実行するようにビルド サービスを構成することもできます。

Windows 認証を必要とし、チーム ビルドを使用して自動化する予定のデプロイ タスクは、ビルド サービス ID を使用して実行されます。 そのため、Web サーバーとデータベース サーバーに必要なアクセス許可をビルド サービス ID に付与する必要があります。

Note

Network Service アカウントでは、コンピューター アカウントを使用して他のコンピューターに対する認証を行います。 マシン アカウントは 、[ドメイン名][マシン名]$ という形式になります( FABRIKAM\TFSBUILD$ など)。 そのため、ネットワーク サービス ID を使用してビルド サービスを実行する場合は、ビルド サーバーのマシン アカウント ID に必要なアクセス許可を付与する必要があります。

Web サーバーのアクセス許可の構成

Web 配置に対する適切なアプローチの選択」で説明されているように、Web パッケージをリモート Web サーバーに展開する場合に使用できるメイン方法は 2 つあります。

  • ターゲット サーバー上の Web Deployment Agent サービス (リモート エージェントとも呼ばれます) をターゲットにして、リモートの場所からアプリケーションを展開します。
  • 宛先サーバー上の インターネット インフォメーション サービス (IIS) Web 配置ハンドラー をターゲットにして、リモートの場所からアプリケーションを展開します。

この場合、リモート エージェントには 2 つの重要な制限があります。

  • リモート エージェントは NTLM 認証のみをサポートします。 つまり、デプロイではビルド サービス ID を使用する必要があります。別のアカウントを偽装することはできません。
  • リモート エージェントを使用するには、展開を実行するアカウントがターゲット サーバーの管理者である必要があります。

これら 2 つの制限により、リモート エージェントのアプローチは、チーム ビルドの自動デプロイには望ましくありません。 この方法を使用するには、ビルド サービス アカウントを任意のターゲット Web サーバーの管理者にする必要があります。

これに対し、Web 配置ハンドラー アプローチにはさまざまな利点があります。

  • Web 配置ハンドラーでは、HTTPS 経由の基本認証がサポートされています。これにより、代替アカウントの資格情報を IIS Web 配置ツール (Web 配置) に渡すことができます。
  • 管理者以外のユーザーが Web 配置ハンドラーを使用して特定の IIS Web サイトにコンテンツを展開できるように、ターゲット Web サーバーを構成できます。

その結果、チーム ビルドから Web パッケージのデプロイを自動化する場合は、Web 配置ハンドラーをターゲットにすることが明らかに望ましいです。 これは推奨されるプロセスです。

  1. デプロイに使用する低特権ドメイン アカウントを作成します。
  2. Web 配置ハンドラーを構成し、「Web 配置発行用の Web サーバーの構成 (Web 配置ハンドラー)」の説明に従って、特定の IIS Web サイトにコンテンツを展開するために必要なアクセス許可をアカウントに付与します。
  3. Web 配置を呼び出し、基本認証を使用して Web 配置ハンドラーをターゲットにし、作成したドメイン アカウントの資格情報を指定してデプロイを実行します。

Contact Manager サンプル ソリューションでは、環境固有のプロジェクト ファイルで、認証の種類 (基本または NTLM)、Web 配置資格情報、エンドポイント アドレス (リモート エージェントまたは Web 配置ハンドラー) を指定します。 これらの値は、プロジェクト ファイルの実行時に Web 配置コマンドを作成して実行するために使用されます。 詳細については、「 Web パッケージの展開」を参照してください。

アクセス許可の構成方法など、Web 配置ハンドラーの構成の詳細については、「 Web 配置発行用の Web サーバーの構成 (Web 配置ハンドラー)」を参照してください。 リモート エージェントの構成の詳細については、「 Web 配置発行用の Web サーバーの構成 (リモート エージェント)」を参照してください。

データベース サーバーのアクセス許可の構成

データベースをSQL Serverにデプロイするには、次の手順を実行する必要があります。

  • SQL Server インスタンスにデプロイしているアカウントのログインを作成します。
  • SQL Server インスタンスに対するログイン DBCreator のアクセス許可を付与します。
  • 初期デプロイ後、ターゲット データベースの db_owner ロールにログインを追加します。 これは、後続のデプロイでは、新しいデータベースを作成するのではなく、既存のデータベースを変更するためです。

NTLM 認証またはSQL Server認証を使用して、SQL Server インスタンスに対して認証を行うことができます。

  • NTLM 認証を使用する場合は、上記のアクセス許可をビルド サービス アカウントに付与する必要があります。
  • SQL Server認証を使用する場合は、上記のアクセス許可を SQL Server アカウントに付与する必要があります。 また、データベースのデプロイに使用する接続文字列に、SQL Serverユーザー名とパスワードを含める必要もあります。

データベース配置のアクセス許可を構成する方法の詳細については、「 Web 配置発行用のデータベース サーバーの構成」を参照してください。

まとめ

この時点で、Team Build から Web アプリケーションとデータベースのデプロイを自動化するときに、必要なアクセス許可と、開いている認証オプションを理解する必要があります。 また、IIS Web サーバーとデータベース サーバーに必要なアクセス許可SQL Server実装できる必要があります。

もっと読む

リモート展開をサポートするように Windows サーバー環境を構成する方法の詳細については、「 Web 展開用のサーバー環境の構成」を参照してください。