Team Foundation Server の基本認証およびダイジェスト認証
更新 : 2007 年 11 月
Visual Studio 2008 は、基本認証モードとダイジェスト認証モードをサポートできます。HTTPS/SSL と基本認証またはダイジェスト認証を使用するように Team Foundation Server 配置を構成すると、仮想プライベート ネットワーク (VPN) 接続を使用せずに Team Foundation Server への外部接続をサポートできます。
構成
Team Foundation Server 配置への外部接続をサポートするには、基本認証とダイジェスト認証のいずれか、または両方に対応するように、インターネット インフォメーション サービス (IIS: Internet Information Services) を構成する必要があります。また、ISAPI (Internet Server Application Programming Interface) フィルタを構成する必要もあります。ISAPI フィルタは、IIS によって提供される機能の変更および強化に使用できる DLL ファイルです。ISAPI フィルタは、IIS を実行しているサーバー上で常に実行されます。SP1 の一部である ISAPI フィルタは、基本認証またはダイジェスト認証を使用するために必要な、Web プロキシや Web クライアントの IP アドレスを使用して構成する必要があります。
基本認証とダイジェスト認証
基本認証は、HTTP 1.0 仕様の一部です。Windows ユーザー アカウントが使用されます。基本認証では、ブラウザが、ユーザー名とパスワードの入力をユーザーに要求します。ユーザー名とパスワードの情報は、Base64 エンコーディングを使用して HTTP を通じて送信されます。基本認証の場合、既定では、Windows ユーザー アカウントが Web サーバーのローカル ログオンの権利を所有している必要があります。基本認証は、ワークグループ配置とドメイン配置の両方で使用できます。多くの Web サーバー、プロキシ サーバー、および Web ブラウザが基本認証をサポートしていますが、これはセキュリティで保護された方法ではありません。Base64 エンコード データのデコードは簡単であるため、基本認証は本質的に、パスワードをプレーン テキストで送信していることになります。ネットワーク上の通信を監視し、一般に入手できるツールを使用することにより、だれでもこのようなパスワードを簡単に傍受し、解読できます。
ダイジェスト認証はチャレンジ/レスポンス方法式であり、パスワードの代わりにダイジェスト (ハッシュともいいます) をネットワーク上で送信します。ダイジェスト認証の場合は、IIS がクライアントにチャレンジを送信してダイジェストを作成し、それをサーバーに送信します。クライアントは、クライアントとサーバーの両方が知っているユーザーのパスワードおよびデータに基づくダイジェストを、チャレンジに対するレスポンスとして送信します。サーバーは、クライアントと同じプロセスを使用し、Active Directory から取得したユーザー情報に基づいて、独自のダイジェストを作成します。サーバーが作成したダイジェストとクライアントが作成したダイジェストが一致した場合、IIS はクライアントを認証します。Active Directory ドメイン配置では、ダイジェスト認証のみを使用できます。ダイジェスト認証自体は、基本認証を多少改善したものに過ぎません。攻撃者は、クライアントとサーバー間の通信を記録し、その情報を使用してトランザクションを再現できます。また、ダイジェスト認証は HTTP 1.1 プロトコルとも依存関係があります。このプロパティをサポートしない Web ブラウザもあります。さらに、ダイジェスト認証を正しく構成する必要があります。構成が正しくない場合、Team Foundation Server へのアクセスの試行は失敗します。配置がダイジェスト認証のすべての要件を満たしていない場合は、ダイジェスト認証を選択しないでください。ダイジェスト認証の詳細については、Microsoft の Web サイト (https://go.microsoft.com/fwlink/?LinkID=89709h) を参照してください。
制限事項
上記のドメインとワークグループの要件に加えて、基本認証もダイジェスト認証も、それだけでは、外部クライアントのネットワーク セキュリティを実現するのに不十分です。このため、これらの接続が HTTPS/SSL も要求するように構成した場合を除き、外部クライアントをサポートするように Team Foundation Server を構成することを避けてください。
ISAPI フィルタ構成
ISAPI フィルタを構成することによって、特定の IP アドレスのセットに規則を適用できます。多くの管理者は、外部 IP アドレスを対象とする ISAPI フィルタ規則の構成に主に取り組むことになりますが、内部アドレスを対象とする規則も構成できます。ISAPI フィルタ規則内で構成された IP アドレスは、フィルタに指定されている規則に従う必要があります。ファイルに指定されていないアドレスは、RequireSecurePort 設定に応じて、Team Foundation Server への接続を許可される場合と許可されない場合があります。
ISAPI フィルタは、その構成設定用に AuthenticationFilter.ini ファイルを使用します。各自の配置に適した設定を使用して、このファイルを構成する必要があります。ファイルでは、次の構成キーおよび値を使用できます。
キー |
サポートされる値 |
---|---|
RequireSecurePort |
True False |
ProxyIPList |
IPaddress (セミコロンで区切って複数のアドレスを指定できます) |
SubnetList |
IPaddress/subnetmask (セミコロンで区切って複数のアドレスを指定できます) |
[config] |
ISAPI フィルタ ファイルのセクション ヘッダー |
キーの詳細な定義は以下のとおりです。
RequireSecurePort RequireSecurePort を True として構成した場合、SubnetList に指定されているアドレスを除くすべての接続は、HTTPS/SSL と、ダイジェスト認証または基本認証を使用する必要があります。RequireSecurePort を False として構成した場合は、ProxyIPList に指定されているアドレスを使用する接続だけが、HTTPS/SSL と、ダイジェスト認証または基本認証を使用するように要求されます。
ProxyIPList ダイジェスト認証または基本認証を適用する IP アドレスです。このキーを理解する最も簡単な方法は、"ここに指定されているアドレスのみが、基本認証またはダイジェスト認証を使用する必要がある" と考えることです。このキーで指定されるアドレスは、ダイジェスト認証または基本認証、および HTTPS/SSL を使用することが要求されます。このキーは SubnetList より優先されるため、ProxyIPList キーがある場合は、SubnetList キーおよびその値は無視されます。
SubnetList SubnetList は、ダイジェスト認証または基本認証を適用しない IP アドレス/サブネット マスクのペアです。このキーを理解する最も簡単な方法は、"ここに指定されているアドレスを除き、他のすべてのアドレスは基本認証またはダイジェスト認証を使用する必要がある" と考えることです。このキーで指定されるアドレスは、ダイジェスト認証または基本認証、および HTTPS/SSL を使用することが要求されません。このキーで指定されないアドレスは、ダイジェスト認証または基本認証を使用することが要求されます。ISAPI フィルタ内に ProxyIPList キーがある場合は、SubnetList キーおよびその値は無視されます。
参照
処理手順
チュートリアル : Secure Socket Layer (SSL) および ISAPI フィルタを使用する Team Foundation Server のセットアップ
チュートリアル : HTTPS と SSL (Secure Socket Layer) の使用を必須とする Team Foundation Server のセットアップ