次の方法で共有


Team Foundation Server 用の SSL (Secure Sockets Layer) を使用した HTTPS のセットアップ

HTTPS (ハイパーテキスト転送プロトコル セキュア) と SSL (Secure Sockets Layer) を利用するようにサービスを構成すると、Visual Studio Team Foundation Server (TFS) の配置のセキュリティを強化できます。配置のセキュリティを最大限に高めるこのプロトコルを要求するか、既定のプロトコルである HTTP に加えて HTTPS と SSL をサポートするように配置を構成できます。構成を選択する前に、このトピックで説明する利点と欠点をよく確認しておく必要があります。組織のセキュリティ ニーズに最も合った構成を特定したら、このトピックの手順に従って、配置を構成できます。

このトピックの内容

  • 概念について

    • HTTP に加えて HTTPS と SSL をサポートする場合の利点

    • すべての接続に HTTPS と SSL を要求する場合の利点

    • HTTPS と SSL をサポートまたは要求する場合の欠点

    • 必要条件

    • 外部からの影響

  • サーバー構成

    • 証明書の取得

    • 証明書の要求

    • 証明書のインストールと割り当て

    • ファイアウォールの構成

    • SQL Server Reporting Services の構成

    • HTTP に加えて HTTPS と SSL をサポートするように配置を構成する

  • 省略可能な構成タスク

    • 配置へのアクセスのテスト (省略可能)

    • HTTPS と SSL を要求するように配置を構成する (省略可能)

  • [ビルド構成]

    • ビルド サーバーへの証明書のインストール

    • ビルド構成の更新

  • クライアント構成

    1. クライアント コンピューターの構成

HTTP に加えて HTTPS と SSL をサポートする場合の利点

両方のプロトコルをサポートするように TFS 配置を構成する場合、HTTPS と SSL をサポートするよう構成されているコンピューターのユーザーは、このプロトコルを使用して接続するので、配置をより安全にすることができます。さらに、HTTP のみをサポートするように構成されているコンピューターのユーザーも配置に接続できます。この構成は、公衆ネットワーク経由では配置できませんが、管理されたネットワーク環境で HTTP 接続のサポートを継続することにより、次の利点が得られます。

  • スケジュールが許せば、HTTPS と SSL をサポートするようにクライアント コンピューターを構成しておくと、後になって配置のセキュリティを高めることができます。段階的な方法で実行する場合は、すべてのコンピューターを同時にアップグレードする必要はありません。まだアップグレードされていないコンピューターのユーザーも配置に接続できます。

  • Team Foundation Server をより簡単に構成し、管理できるようになりました。

  • ある Web サービスから別の Web サービスへの呼び出しは、HTTPS と SSL を経由するよりも HTTP を経由する方が高速で処理されます。したがって、パフォーマンス要件がセキュリティ リスクよりも重要である場合は、引き続きクライアント コンピューターから HTTP 接続をサポートできます。

すべての接続に HTTPS と SSL を要求する場合の利点

すべての接続に HTTPS と SSL を要求する場合、次の利点が得られます。

  • Team Foundation のアプリケーション層、データ層、およびクライアント層の間のすべての Web 接続で証明書が要求されるので、より安全になります。

  • プロジェクトのフェーズの終了予定日に証明書が期限切れとなるように構成することで、アクセスをより簡単に管理できます。

HTTPS と SSL をサポートまたは要求する場合の欠点

HTTPS と SSL をサポートまたは要求するように TFS を構成する前に、次の欠点を考慮する必要があります。

  • 継続的な管理タスクが複雑になる可能性があります。たとえば、Service Pack またはその他の更新プログラムを適用できるようにするために、HTTPS と SSL のサポートを停止するように配置を再構成することが必要になる場合があります。

  • 最初に証明機関 (CA: Certificate Authority) および証明書信頼リストを構成するだけでなく、管理する必要もあります。Windows Server 2003 および Windows Server 2008 では証明書サービスを使用できますが、時間とリソースを投入してまで安全な公開キー基盤 (PKI: Public Key Infrastructure) を配置する必要がない場合もあります。

  • 多大な時間を費やしてこれらの構成のいずれかを設定およびテストする必要があり、配置のトラブルシューティングがより困難になります。

  • 両方のプロトコルのサポートを継続する場合、Team Foundation のアプリケーション層が適切に保護されていないと、外部接続が暗号化されない可能性があります。

  • HTTPS と SSL を要求する場合は、配置のパフォーマンスが低下します。

HTTPS と SSL をサポートまたは要求するように配置を構成する

このトピックの手順では、Team Foundation Server で SSL 接続に必要な証明書の要求、発行、および割り当てを行うプロセスについて説明します。このトピックの説明にあるソフトウェアとは異なるソフトウェアを使用している場合は、別の手順を実行することが必要になる可能性があります。TFS の配置への外部接続をサポートするには、インターネット インフォメーション サービス (IIS: Internet Information Services) で基本認証またはダイジェスト認証あるいはこの両方を有効にする必要もあります。

このトピックの各手順を実行すると、次のタスクを完了できます。

  1. Team Foundation Server の配置および使用される Web サイト用の証明書を取得する。

  2. 証明書をインストールして割り当てる。

  3. Team Foundation Server を構成する。

  4. Team Foundation ビルドを構成する。

  5. クライアント コンピューターを構成する。

必要条件

このトピックの各手順を実行するには、まず次の要件を満たす必要があります。

  • Team Foundation のデータ層とアプリケーション層の論理コンポーネントがインストールされ、動作している必要があります。配置に IIS、SQL Server、SharePoint 製品、Team Foundation ビルド、および SQL Server Reporting Services が含まれている場合は、データ層とアプリケーション層にこれらのコンポーネントが含まれています。このトピックの手順では、Team Foundation のアプリケーション層で論理コンポーネントを実行する 1 つ以上のサーバーのことを、Team Foundation のアプリケーション層サーバーと呼んでいます。このトピックの手順では、Team Foundation のデータ層で論理コンポーネントを実行する 1 つ以上のサーバーのことを、Team Foundation のデータ層サーバーと呼んでいます。アプリケーション層とデータ層は、同じサーバーまたは複数のサーバーで実行される場合があります。詳細については、「Team Foundation Server と Visual Studio ALM のインストール」を参照してください。

  • 証明書を発行できるように証明機関 (CA) を使用できる必要があります。このトピックでは、証明書サービスを CA として使用することを前提としていますが、配置に構成した任意の CA を使用できます。証明機関を使用していない場合は、証明書サービスをインストールして構成できます。詳細については、Microsoft Web サイトの以下のドキュメントのいずれかを参照してください。

必要なアクセス許可

これらの手順を実行するには、Team Foundation 管理者グループに属しているか、Team Foundation のアプリケーション層サーバーおよびデータ層サーバーの Administrators グループに属している必要があります。ビルド サーバーを構成するには、そのサーバーの Administrators グループに属している必要があります。配置で SharePoint 製品を使用する場合は、SharePoint のサーバー管理をホストするサーバーの Administrators グループに属している必要があります。ファームの管理者グループに属している必要もあります。アクセス許可の詳細については、「Team Foundation Server のアクセス許可」を参照してください。

外部からの影響

このトピックの手順では、次のいずれかの状況に当てはまることを前提としています。

  • データ層サーバーとアプリケーション層サーバーがセキュリティで保護された環境でインストールおよび配置され、セキュリティ ベスト プラクティスに従って構成されていること。

  • PKI を構成して管理する方法と、証明書の要求、発行、および割り当てに詳しいこと。詳細については、Microsoft Web サイトの「公開キー基盤」を参照してください。

  • 開発環境のネットワーク トポロジに関する実務知識を持ち、ネットワーク設定、IIS、および SQL Server の構成に詳しいこと。

証明書の取得

HTTPS と SSL を使用するように TFS を構成する前に、配置内のサーバーにサーバー証明書を取得してインストールしておく必要があります。サーバー証明書を取得するには、独自の証明機関をインストールして構成するか、信頼する外部組織の証明機関を使用する必要があります。

証明機関をインストールする方法の詳細については、Microsoft Web サイトの次のトピックを参照してください。

証明書の要求

証明機関に登録したら、IIS マネージャーを使用して証明書を要求するか、配置内の次の各サーバーに証明書を手動でインストールする必要があります。

  • 各アプリケーション層サーバー

  • Team Foundation Server Proxy を実行している各サーバーで、これが配置に構成されている場合

  • ビルド コントローラーまたはビルド エージェントとして Team Foundation ビルド サービスを実行している各サーバーで、これが配置に構成されている場合

  • SharePoint 製品 を実行している各サーバーで、SharePoint 製品 が配置に構成されている場合

  • Reporting Services を実行しているサーバーで、これが配置に構成されている場合

IIS で証明書を要求するには

  1. [スタート] ボタンを選択し、[管理ツール] を選択し、[インターネット インフォメーション サービス (IIS) マネージャー] を選択します。

  2. [Web サイト] または [サイト] を展開し、証明書を要求する Web サイトに移動します。

    たとえば、アプリケーション層サーバーの証明書を要求するには、[Team Foundation Server] に移動します。プロキシ サーバーの証明書を要求するには、[Microsoft Team Foundation Server Proxy] に移動します。

  3. ご使用の IIS のバージョンに適した手順に従って、組織のセキュリティ ニーズに合ったサーバー証明書を要求または作成します。

    • IIS 7.0 を使用している場合は、IIS 7.0 のサーバー証明書を準備し、要求に名前を指定します。次に、証明書をダウンロードし、サーバー上の安全な場所にそれを保存します。

      詳細については、「IIS 7.0 でサーバー証明書を構成する」を参照してください。

証明書のインストールと割り当て

TFS で SSL を使用するには、次の一覧にある Web サイトのように、TFS で使用する Web サイトにサーバー証明書をインストールしておく必要があります。

  • 既定の Web サイト

  • Team Foundation Server

  • Microsoft Team Foundation Server Proxy

  • SharePoint サーバー管理

証明書をインストールしたら、各 Web サイトに明示的にバインドするか割り当て、各 Web サイトに使用する認証方法を有効にし、各 Web サイトに対して HTTPS を構成します。

配置構成によっては、複数のコンピューターに証明書をインストールして構成することが必要になる場合があります。たとえば、配置環境で Team Foundation ビルドと SharePoint 製品がアプリケーション層サーバーとは異なるコンピューター上に置かれているとします。この場合は、SharePoint 製品をホストするサーバーだけでなく、ビルド コントローラーとビルド エージェントをホストするコンピューターにもサーバー証明書をインストールして構成する必要があります。

Aa833872.collapse_all(ja-jp,VS.110).gifサーバー証明書のインストール

次の手順に従って、TSF の配置に使用するサーバー証明書をインストールします。

Web サイトにサーバー証明書インストールするには

  1. 構成する Web サイトをホストするサーバー上で、[スタート] ボタンを選択し、[管理ツール] を選択し、[インターネット インフォメーション サービス (IIS) マネージャー] を選択します。

  2. ご使用の IIS のバージョンに適した手順を実行してください。

Aa833872.collapse_all(ja-jp,VS.110).gif認証方法の有効化、HTTPS の有効化、および配置で使用する Web サイトに対する証明書の指定

次の手順に従って、使用する認証方法を設定し、配置で使用する Web サイトに対して IIS で HTTPS を有効にすることができます。これらの Web サイトは、別々のサーバーでホストされる場合があります。前の手順で構成した各 Web サイトに対して、これらの手順を実行する必要があります。

HTTPS を構成したら、構成した各 Web サイトのバインド リストから HTTP を削除することにより、配置のセキュリティをさらに強化できます。

証明階層や公開キー基盤によっては、クライアント証明書認証用に IIS を構成する必要もあります。詳細については、「証明書サービス」と「証明書」を参照してください。

HTTPS、SSL、および証明書を正しく連動させるには、SharePoint 製品の配置に、代替アクセス マッピングやフォーム認証などの追加の構成が必要となる場合があります。詳細については、「What Every SharePoint Administrator Needs to Know About Alternate Access Mappings (代替アクセス マッピングに関してすべての SharePoint 管理者が知っておくべきこと)」、「SharePoint 製品とテクノロジのフォーム認証」、および SharePoint 製品のご使用のバージョンの構成に関するトピック

HTTPS を設定して証明書を指定するには

  1. 構成する Web サイトをホストするサーバー上で、[スタート] ボタンを選択し、[管理ツール] を選択し、[インターネット インフォメーション サービス (IIS) マネージャー] を選択します。

  2. ご使用の IIS のバージョンに適した手順を実行してください。

    IIS 7.0 を使用する配置の場合:

    1. [<コンピューター名>] を展開し、[Web サイト] を展開します。構成する Web サイトのサブメニューを開き、[バインドの編集] を選択します。

    2. [サイト バインド][追加] を選択します。

      [サイト バインドの追加] ダイアログ ボックスが表示されます。

    3. [種類] ボックスの一覧にある [https] を選択します。

      (省略可能) [ポート] ボックスに別のポート番号を入力します。

      重要 : 重要

      SSL 接続の既定のポート番号は 443 ですが、既定の Web サイト、Team Foundation Server Web サイト、Microsoft Team Foundation Server Proxy Web サイト (配置で使用する場合)、および SharePoint サーバー管理 Web サイトにそれぞれ、一意のポート番号を割り当てる必要があります。

      Team Foundation の管理コンソールで指定する必要があるので、構成する各 Web サイトの SSL ポート番号を記録しておく必要があります。

      [SSL 証明書] ボックスでインポートした証明書を選択し、[OK] を選択します。

    4. [サイト バインド][閉じる] を選択します。

    5. 構成している Web サイトの [ホーム] ページで、[機能] ビューを開きます。

    6. [IIS][認証] を選択します。

    7. 構成する認証方法を選択し、サブメニューを開き、[有効にする][無効にする][編集] のいずれかを選択して、認証方法を有効または無効にするか、追加の構成を行います。

ファイアウォールの構成

IIS で指定した SSL ポート経由でトラフィックを許可するようにファイアウォールを構成する必要があります。詳細については、ファイアウォールのドキュメントを参照してください。

SQL Server Reporting Services の構成

配置でレポート機能を使用する場合、HTTPS と SSL をサポートするか、IIS で Team Foundation Server に指定したポートを使用するように SQL Server Reporting Services を構成する必要があります。そうしないと、レポート サーバーは配置で正しく機能しません。詳細については、「Secure Sockets Layer (SSL) 接続用レポート サーバーの構成」を参照してください。

ヒントヒント

配置でレポート機能を使用しない場合は、この手順を省略できます。

配置の構成

次の手順に従って、IIS で既定および Team Foundation Server Web サイトに構成した HTTPS ポートと値を使用して配置を構成します。

Team Foundation Server を再構成するには

  1. Team Foundation の管理コンソールを開きます。

    詳細については、「Team Foundation 管理コンソールを開く」を参照してください。

  2. [Team Foundation] で、サーバーの名前を展開し、[アプリケーション層] を選択します。

  3. [アプリケーション層の概要][URL の変更] を選択します。

    [URL の変更] ウィンドウが開きます。

  4. IIS で Team Foundation Server Web サイトに構成した HTTPS URL を [通知 URL] に入力します。

    たとえば、ポート 443 を使用するように Web サイトを構成したとします。この場合は、「https://<サーバー名>:443/tfs」と入力します。localhost ではなく、サーバーの完全修飾ドメイン名を使用してください。

  5. [テスト] を選択し、テストに合格したら、[OK] を選択します。

  6. HTTPS を要求するには、[サーバーの URL][使用] を選択し、Team Foundation Server Web サイトに構成した HTTPS URL を入力します。

    localhost ではなく、サーバーの完全修飾ドメイン名を使用してください。

  7. [テスト] を選択し、テストに合格したら、[OK] を選択します。

  8. メモ帳などの任意のプレーンテキスト エディターで Team Foundation Server の web.config ファイルを開きます。既定では、このファイルは %PROGRAMFILES%\Microsoft Team Foundation Server 11.0\Application Tier\Message Queue\web.config にあります。

  9. ファイルから次のエンドポイントを削除します。

            <!-- An empty relative address means the endpoint will pick up the base address of the svc file -->

            <endpoint address=""

                      binding="customBinding"

                      bindingConfiguration="TfsSoapBinding"

                      contract="Microsoft.TeamFoundation.Framework.Server.WebServices.MessageQueueWebService" />

            <!-- An empty relative address means the endpoint will pick up the base address of the svc file -->

            <endpoint address=""

                      binding="customBinding"

                      bindingConfiguration="TfsSoapBinding"

                      contract="Microsoft.TeamFoundation.Framework.Server.WebServices.MessageQueueWebService2" />

  10. <system.serviceModel> セクションに移動し、次のプロトコル マッピングを追加します。

    <protocolMapping>

          <remove scheme="http" />

         <add scheme="http" binding="customBinding" bindingConfiguration="TfsSoapBinding"/>

          <add scheme="https" binding="customBinding" bindingConfiguration="TfsSoapBindingHttps"/>

    </protocolMapping>

  11. 同じ <system.serviceModel> セクションで、次のバインディングを <customBinding> に追加します。

    <binding name="TfsSoapBindingHttps">

              <textMessageEncoding messageVersion="Soap12WSAddressing10" />

              <httpsTransport authenticationScheme="IntegratedWindowsAuthentication" manualAddressing="true" />

    </binding>

  12. ファイルを保存して閉じます。

  13. 配置で SharePoint 製品 を使用する場合は、管理コンソールで [SharePoint Web アプリケーション] を選択します。

  14. [SharePoint Web アプリケーション][名前] ボックスの一覧にある Web アプリケーションを選択し、[変更] を選択します。

    [SharePoint Web アプリケーションの設定] ページが開きます。

  15. [Web アプリケーションの URL] で、アプリケーションの URL を HTTPS 値に変更します。

  16. [サーバーの全体管理の URL] で、サーバーの全体管理の Web サイトの URL を HTTPS 値に変更します。

  17. (オプション) [表示名] の値を変更して、このアプリケーションの HTTPS アドレスを反映させます。

  18. [OK] をクリックします。

  19. 配置で使用する各 SharePoint Web アプリケーションに対して、前の 5 つの手順を繰り返します。

  20. 配置で Reporting Services を使用する場合は、管理コンソールで [レポート] を選択します。

  21. [レポート][編集] を選択します。

    [オフラインにする] ダイアログ ボックスが開いたら、[OK] を選択します。

    [レポート] ウィンドウが開きます。

  22. [レポート] タブを選択します。[レポート サーバーの URL][Web サービス][レポート マネージャー] に HTTPS URL を入力し、[OK] を選択します。

配置へのアクセスのテスト (省略可能)

変更内容が予想どおりに機能するかどうかをテストできます。この手順は省略できますが、実行することをお勧めします。

配置へのアクセスをテストするには

  1. アプリケーション層をホストしているサーバーで、Web ブラウザーを開きます。

  2. Team System Web Access から配置に接続するための URL をアドレス バーに入力します。

    [!メモ]

    この URL は、Team Foundation の管理コンソールのアプリケーション層ノードで確認できます。

  3. Team System Web Access からチーム プロジェクトおよびチーム プロジェクト コレクションにアクセスできるかどうかを確認します。

  4. Team System Web Access から配置にアクセスできない場合は、実行した手順を見直し、構成への変更をすべて適切に行ったことを確認してください。

HTTPS と SSL を要求するように配置を構成する (省略可能)

HTTPS と SSL を使用するように配置へのすべての接続に要求できます。この追加のセキュリティは省略できますが、実行することをお勧めします。

SSL 接続を要求するには

  1. 構成する Web サイトをホストするサーバー上で、[スタート] ボタンを選択し、[管理ツール] を選択し、[インターネット インフォメーション サービス (IIS) マネージャー] を選択します。

  2. ご使用の IIS のバージョンに適した手順に従ってください。

    IIS 7.0 を使用する配置の場合:

    1. [<コンピューター名>] を展開し、[Web サイト] を展開し、構成する Web サイトを選択します。

    2. その Web サイトのホーム ページで、[SSL 設定] を選択します。

    3. [SSL 設定] ペインの [SSL が必要] チェック ボックスをオンにします。

      [128 ビット SSL が必要] チェック ボックスをオンにします (省略可能)。

    4. 配置のセキュリティ要件に応じて、[クライアント証明書][無視][受理]、または [必要] を選択します。

    5. [アクション][適用] を選択します。

    6. SSL を要求する各 Web サイトに対して、これらの手順を繰り返します。

ビルド サーバーへの証明書のインストール

Team Foundation ビルド サービスを 1 台以上のサーバーにインストールした場合は、各サーバーの信頼されたルート証明機関ストアに証明書をインストールする必要があります。詳細については、このトピックの前の「証明書の取得」と「証明書のインストールと割り当て」を参照してください。コントローラーとエージェントの両方には、HTTPS 接続での識別に使用される秘密キーと共に証明書が必要です。

[!メモ]

SSL 経由でビルドを実行するには、ビルド コントローラーとビルド エージェントの両方の信頼されたルート ストアに証明書がインストールされている必要があります。

ビルド構成の更新

SSL 接続をサポートするように Team Foundation ビルドを構成するには、アプリケーション層およびビルド構成でサポートされるコレクションに対して構成した HTTPS URL を使用するようにビルド サービスを構成する必要があります。配置内の各ビルド構成に対して、この URL を構成する必要があります。

HTTPS を使用するようにビルド構成を変更するには

  1. 構成するビルド構成をホストしているサーバー上で Team Foundation の管理コンソールを開きます。

  2. [Team Foundation] でサーバーの名前を展開し、[ビルド構成] を選択します。

    [ビルド構成] ペインが表示されます。

  3. [サービスの構成] の [停止] を選択し、[プロパティ] を選択します。

    [ビルド サービスのプロパティ] ダイアログ ボックスが開きます。

  4. [通信] で、チーム プロジェクト コレクションの URL で適切な HTTPS アドレスとフル サーバー名が使用されていることを確認します。

  5. [ローカル ビルド サービス エンドポイント (受信)][変更] を選択します。

    [ビルド サービス エンドポイント] ダイアログ ボックスが開きます。

  6. [エンドポイントの詳細] で、ポート番号が構成の詳細と一致していることを確認します。

  7. [プロトコル][HTTPS] を選択します。

  8. [SSL 証明書] ボックスの一覧で、この配置で使用するためにインストールおよび構成した証明書を選択し、[OK] を選択します。

  9. [ビルド サービスのプロパティ] ダイアログ ボックスの [開始] を選択します。

クライアント コンピューターの構成

ユーザーが Team Foundation にアクセスする各クライアント コンピューターに証明書をローカルにインストールし、そのコンピューターから Team Foundation にアクセスするユーザーについてクライアント キャッシュを消去する必要があります。そうしないと、ユーザーはコンピューターから Team Foundation に接続できません。詳細については、「信頼されたルート証明書を管理する」を参照してください。

重要 : 重要

Team Foundation Server と 1 台以上の Team Foundation クライアントの両方を実行しているコンピューターに対しては、この操作を実行しないでください。

クライアント コンピューターに証明書をインストールするには

  1. そのコンピューターの Administrators グループに属しているアカウントを使用して、コンピューターにログオンします。

  2. ローカル コンピューターの信頼されたルート証明機関フォルダーに証明書をインストールします。

    詳細については、オペレーティング システムおよび証明機関のドキュメントを参照してください。

クライアント コンピューターのキャッシュを消去するには

  1. キャッシュを消去するユーザーの資格情報を使用して、コンピューターにログオンします。

  2. Visual Studio の起動しているインスタンスがあればすべて終了します。

  3. ブラウザー ウィンドウで次のフォルダーを開きます。

    <ドライブ>:\Users\<ユーザー名>\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. キャッシュ ディレクトリの内容を削除します。すべてのサブフォルダーが削除されたことを確認してください。

  5. [スタート] を選択し、[ファイル名を指定して実行] を選択し、「devenv /resetuserdata」と入力し、[OK] を選択します。

  6. そのコンピューターから Team Foundation にアクセスした各ユーザーのアカウントに対して、これらの手順を繰り返します。

    [!メモ]

    ユーザーが自分でキャッシュを消去できるように、キャッシュを消去する手順をすべての Team Foundation ユーザーに配布することも検討してください。

再構成された配置にクライアント コンピューターを接続するには

参照

その他の技術情報

Securing Team Foundation Server with HTTPS and Secure Sockets Layer (SSL)

Team Foundation Server, HTTPS, and Secure Sockets Layer (SSL)