Team Foundation Server のセキュリティのアーキテクチャ

更新 : 2007 年 11 月

Team Foundation Server のセキュリティの分析および計画を行うには、Team Foundation アプリケーション層、Team Foundation データ層、Team Foundation クライアント層、Team Foundation ビルド、Team Foundation Server Proxy、およびこれらのエンティティ間の対話を考慮する必要があります。使用される Web サービス、データベース、およびオブジェクト モデルについての知識が必要になります。また、既定で使用されるネットワーク ポートおよびネットワーク プロトコルと、カスタマイズ可能なネットワーク ポートについても知っておく必要があります。

Team Foundation Server は、それ自体のサービスだけでなく、他のサービスにも依存して動作します。Team Foundation Server の依存関係の詳細については、「Team Foundation Server のセキュリティの概念」を参照してください。

オブジェクト モデル

Team Foundation Server には、Team Foundation クライアント層と Team Foundation アプリケーション層の間の通信を可能にするオブジェクト モデルが含まれています。また、このオブジェクト モデルにより、ソフトウェア インテグレータおよびサードパーティは Team Foundation Server の機能をカスタマイズおよび拡張できます。

Team Foundation Server のオブジェクト モデル

Team Foundation Server のオブジェクト モデルは、次のインターフェイスを含むマネージ API のセットです。

  • Team Foundation の共有サービス

    • 登録サービス

    • セキュリティ サービス

    • リンク サービス

    • イベント サービス

    • 分類サービス

  • バージョン管理オブジェクト モデル

  • 作業項目トラッキング オブジェクト モデル

  • Team Foundation ビルド オブジェクト モデル

Team Foundation Server オブジェクト モデルは、Visual Studio SDK の Team Foundation Server の拡張機能に関するドキュメントで公開されています。

Web サービスおよびデータベース

Team Foundation Server には、Web サービスおよびデータベースのセットが含まれています。このようなサービスおよびデータベースは、Team Foundation のアプリケーション層、データ層、およびクライアント層で別々にインストールおよび設定されます。Team Foundation Server 上およびクライアント コンピュータ上の Web サービス、アプリケーション、およびデータベースの概要を次の図に示します。

サーバー アーキテクチャ ダイアグラムクライアント アーキテクチャ ダイアグラム

アプリケーション層

Team Foundation のアプリケーション層には、クライアント層のそれぞれのプロキシまたはオブジェクト モデルに対応する次の ASP.NET Web サービスが含まれています。これらの Web サービスは、サードパーティ インテグレータによってプログラミングされることを意図していません。このポリシーの例外の 1 つに、MSBuild の Web サービスがあります。これについては、Visual Studio SDK の Team Foundation Server の機能拡張に関するドキュメントを参照してください。

  • Team Foundation 共通サービス

    • 登録 Web サービス

    • セキュリティ Web サービス

    • リンク Web サービス

    • イベント Web サービス

    • 分類 Web サービス

  • バージョン管理 Web サービス

  • 作業項目トラッキング Web サービス

  • Team Foundation ビルド Web サービス

データ層

Team Foundation のデータ層は、SQL Server 2005 内の次の運営ストアで構成されます。これには、データ、ストアド プロシージャ、および他の関連付けられているロジックが含まれます。一般に、これらの運営ストアは、サードパーティ インテグレータによってプログラミングされることを意図していません。

  • 作業項目トラッキング

  • バージョン管理

  • Team Foundation の共有サービス

  • Team Foundation ビルド

  • レポート ウェアハウス

クライアント層

クライアント層は、アプリケーション層の説明で示したのと同じ Web サービスを使用して、Team Foundation のアプリケーション層と通信します。ここでは Team Foundation Server のオブジェクト モデルを介して通信します。Team Foundation のクライアント層は、Team Foundation Server のオブジェクト モデルに加えて、VSIP (Visual Studio Industry Partner) のコンポーネント、Microsoft Office 統合、コマンド ライン インターフェイス、および Team Foundation Server との統合とカスタマイズされた統合のためのチェックイン ポリシー フレームワークで構成されています。クライアント層を拡張およびカスタマイズする方法の詳細については、Visual Studio SDK で機能拡張に関するドキュメントを参照してください。

Team Foundation Server の構成情報

Team Foundation Server は SQL Server、SQL Server Reporting Services、インターネット インフォメーション サービス (IIS: Internet Information Services)、Windows オペレーティング システム、および Windows SharePoint Services に依存しているため、Team Foundation Server の構成情報は 5 つの場所に格納されます。

  • インターネット インフォメーション サービス (IIS) のデータ ストア - Team Foundation アプリケーション層

  • Team Foundation Server 構成ファイル (web.config、proxy.config) - Team Foundation アプリケーション層

  • SQL Server Reporting Services データ ソース (TFSREPORTS データなど) - Team Foundation アプリケーション層

  • Team Foundation Server 統合データベース - Team Foundation データ層

  • Windows レジストリ - Team Foundation アプリケーション層、データ層、およびクライアント層

Team Foundation Server の配置を保持する場合は、これらの構成元を考慮する必要があります。なんらかの方法で構成を変更するには、アプリケーション層の複数の場所に格納されている情報を変更する必要があります。また、データ層とクライアント層の構成情報も変更する必要があります。Team Foundation Server には、このような変更に役立つ多くのコマンド ライン ユーティリティが含まれています。ただし、場合によっては手動で変更する必要もあります。

Active Directory と Team Foundation Server 間でのグループ ID の同期

Team Foundation Server が Active Directory ドメインで実行されている配置では、次のいずれかのイベントが発生したときにグループと ID の情報が同期されます。

  • Team Foundation のアプリケーション層サーバーが起動される。

  • Active Directory グループが Team Foundation Server のグループに追加される。

  • web.config ファイルに指定された時間が経過する (既定値は 1 時間です)。

Active Directory が Generic Security Services (GSS) と同期され、その後、Generic Security Services (GSS) が Team Foundation Server と同期されます。変更後の ID は、サーバーからクライアントへ反映されます。web.config ファイルで構成される同期間隔およびグループやユーザーに加えられた変更によっては、Active Directory のユーザーとグループへの変更が Team Foundation Server に反映されるまでに時間がかかることがあります。

グループとアクセス許可

Team Foundation Server には、独自の既定のグループのセットがあります。また、複数のレベルで設定できるアクセス許可があります。グループまたは個々のレベルで、カスタム グループを作成したりアクセス許可をカスタマイズしたりすることができます。ただし、Team Foundation Server にユーザーまたはグループを追加した場合、そのユーザーまたはグループが、Team Foundation Server が必要とする 2 つのコンポーネント (Windows SharePoint Services および SQL Server Reporting Services) に自動的に追加されることはありません。ユーザーとグループをこれらのプログラムに追加して、適切なアクセス許可を付与すると、このユーザーまたはグループは、Team Foundation Server のすべての操作で正しく動作します。詳細については、「ユーザーおよびグループの管理」、「アクセス許可の管理」、「Windows SharePoint Services のロール」、および「SQL Server Reporting Services のロール」を参照してください。

ネットワーク ポートおよびネットワーク プロトコル

既定では、Team Foundation Server は特定のネットワーク ポートおよびネットワーク プロトコルを使用するように設定されます。配置例における Team Foundation Server のネットワーク トラフィックを次の図に示します。

ポートとコミュニケーション ダイアグラム

既定のネットワーク設定

既定では、Team Foundation アプリケーション層、Team Foundation データ層、ビルド コンピュータ、および Team Foundation Server プロキシの間の通信には、次の一覧に示すプロトコルおよびポートが使用されます。ポート番号の後ろにアスタリスク (*) がある場合は、そのポートをカスタマイズできます。

サービスおよび層

プロトコル

ポート

アプリケーション層 - Web サービス

HTTP

8080

アプリケーション層: Windows SharePoint Services 管理

HTTP

17012* (Team Foundation Server と共にインストールされた場合)。それ以外の場合はランダムに生成されます。

アプリケーション層 - Windows SharePoint Services および SQL Reporting Services

HTTP

80

ビルド コンピュータ - Team Foundation アプリケーション層サーバーからのリモート アクセス

SOAP over HTTP

9191*

データ層

MS-SQL TCP

1443*

Team Foundation Server Proxy : クライアントからプロキシ

HTTP

8081*

Team Foundation Server Proxy : プロキシからアプリケーション層

HTTP

8080*

クライアント層 - Reporting Services

HTTP

80

クライアント層 - Web サービス

HTTP

8080*

カスタマイズできるネットワーク設定

Team Foundation Server を変更して、一部のカスタム ポートを使用できます。アプリケーション層、データ層、およびクライアント層の間の通信は、前の表に示すように変更できます。例として、HTTP から HTTPS へのポートの変更を次の表で説明します。

ms252473.alert_note(ja-jp,VS.90).gifメモ :

HTTPS および SSL を使用するように Team Foundation Server を構成する作業は複雑です。HTTPS ネットワーク トラフィックのポートを有効にするだけでは完了しません。詳細については、「HTTPS と Secure Sockets Layer (SSL) を使用した Team Foundation Server のセキュリティ保護」を参照してください。

サービスおよび層

プロトコル

ポート

アプリケーション層 - SSL を使用した Web サービス

HTTPS

管理者が設定

アプリケーション層: Windows SharePoint Services 管理

HTTPS

管理者が設定

アプリケーション層 - Windows SharePoint Services および SQL Reporting Services

HTTPS

443

クライアント層 - Reporting Services

HTTPS

443

クライアント層 - Web サービス

HTTPS

管理者が設定

参照

概念

Team Foundation Server のセキュリティの概念

Team Foundation Server のアクセス許可

その他の技術情報

Team Foundation Server のトポロジ