Kerberos チケットを使用した認証

Kerberos ネゴシエート (SPNEGO) プロトコルを使用して、Visual Studio Team Foundation Server の正しく構成されたインスタンスを認証できます。 Kerberos チケットを使用した認証を使用すると、パスワードを指定せずに、サポートされているクライアントからサーバーに至るまで、より安全に認証することができます。 Kerberos チケットを取得した後、Kerberos を使用するように Team Explorer Everywhere のクライアントを構成できます。

このトピックの内容

  • Eclipse 対応 Team Foundation Server プラグイン

  • Team Foundation Server のプラットフォーム間のコマンド ライン クライアント

  • Kerberos チケットを使用するように Team Foundation Server 2008 を構成する

  • トラブルシューティング

Eclipse 対応 Team Foundation Server プラグイン

Eclipse 対応 Team Foundation Server プラグインで認証情報の入力を求められたら、Windows ドメイン資格情報を指定するのではなく、[現在ログインしているユーザーとして認証する] を指定できます。 このオプションを指定する場合は、Kerberos チケットを使用して認証します。

[新しいサーバーの追加] ダイアログ ボックスで [現在ログインしているユーザーとして認証する] が使用できる場合、Team Foundation Server インスタンスとローカル コンピューターの両方で Kerberos が正しく構成されていることを確認する必要があります。

Team Foundation Server インスタンスへの接続方法の詳細については、「チーム プロジェクトへの接続」を参照してください。

Team Foundation Server のプラットフォーム間のコマンド ライン クライアント

Team Foundation Server のプラットフォーム間のコマンド ライン クライアントで Kerberos 認証を使用するには、useDefaultCredentials プロファイル プロパティの値を true に設定する必要があります。 たとえば、ProfileName プロファイルの Kerberos 認証を有効にするには、次のコマンドを使用します。

tf profile -edit -boolean:useDefaultCredentials=true  ProfileName

認証エラーが発生した場合、Team Foundation Server インスタンスとローカル コンピューターの両方で Kerberos が正しく構成されていることを確認する必要があります。

Kerberos チケットを使用するように Team Foundation Server 2008 を構成する

注意

Visual Studio Team Foundation Server 2010 は、既定で Kerberos 認証を許可するように構成されています。 Visual Studio Team System 2008 Team Foundation Server を使用している場合のみ、このセクションの手順に従う必要があります。

既定では、Team Foundation Server およびインターネット インフォメーション サービスは、Kerberos 認証を許可するように構成されていません。 ネットワーク管理者は、Kerberos を手動で構成する必要があります。

Kerberos をサポートするようにインターネット インフォメーション サービスを構成する

Kerberos 認証でネゴシエート プロトコルを許可するようにインターネット インフォメーション サービス (IIS) を構成する必要があります。 詳細については、Microsoft Web サイトの「ネットワーク認証に Kerberos プロトコルと NTLM プロトコルの両方をサポートするように IIS を構成する方法」を参照してください。

サーバーの正しいサービス プリンシパル名 (SPN) を登録する

ネゴシエート プロトコルを許可するように IIS を構成した後、Team Foundation Server インスタンスの SPN を構成することが必要になる場合があります。 たとえば、Team Foundation Server を実行しているサーバーを Domain\UserName ユーザーにバインドするには、次のコマンドを使用します。

setspn -a http/tfs.example.com Domain\UserName

詳細については、Microsoft Web サイトの「Setspn Overview: Active Directory (Setspn の概要: Active Directory)」を参照してください。

トラブルシューティング

以下のセクションでは、Kerberos 認証を使用する際に発生することがある一般的な問題を解決する方法について説明します。

Team Foundation Server のインスタンスで Kerberos 認証が有効になっていることを確認する

このセクションの内容は、Windows オペレーティング システムを実行していないコンピューター上の Team Foundation Server のクライアントに当てはまります。 Windows オペレーティング システムで実行されている Team Explorer Everywhere クライアントでは、認証に Microsoft セキュリティ サポート プロバイダー インターフェイスを使用します。 他のオペレーティング システムでは、Team Explorer Everywhere クライアントによって、Kerberos の実装である MIT (Massachusetts Institute of Technology) および Heimdal がサポートされます。

Kerberos 認証をテストするには、Kerberos 認証をサポートするブラウザーで Team Foundation Server インスタンスの URI (Uniform Resource Identifier) を使用してこのインスタンスにアクセスします。 Internet Explorer、Mozilla Firefox、および Apple Safari では、ネゴシエート プロトコルを介して Kerberos チケットを使用して、認証をサポートします。 たとえば、次のアドレスを使用するとします。

http://tfs.example.com:8080/

このページを開いたときに、パスワードの入力は求められません。また、ディレクトリの一覧表示が拒否されたことを示すエラーは表示されません。 パスワードの入力を求められる場合、Kerberos 認証は正しく機能していません。

Firefox を使用している場合は、Team Foundation Server インスタンスの URI が Negotiate Trusted URIs (network. negotiate-auth.trusted-uris) の一覧に含まれていることを Firefox 構成で確認する必要もあります。 詳細については、MozillaZine Web サイトの「About:config entries (About:config エントリ)」を参照してください。

Kerberos チケット保証チケット (TGT) を取得したことを確認する

コマンド プロンプトで次のコマンドを実行します。

klist -5fea

krbtgt/ Domain @ Domain サービス プリンシパルの有効なチケットが表示されます。 krbtgt サービス プリンシパルのチケットがない場合、Kerberos を使用して認証することはできません。 Kerberos TGT を取得する方法については、ネットワーク管理者に問い合わせるか、オペレーティング システムのマニュアルを参照してください。

正しい Kerberos ライブラリが読み込まれていることを確認する

Team Explorer Everywhere のクライアントでは、Kerberos 5 および GSSAPI (Generic Security Services Application Program Interface) をサポートする MIT および Heimdal ベースの Kerberos 配布がサポートされます。 最新バージョンの MIT Kerberos をお勧めします。これは、特に、キー配布センター (KDC) として Active Directory を使用する場合にお勧めです。 Kerberos ライブラリをアップグレードする場合、LD_LIBRARY_PATH 環境変数 (ほとんどのオペレーティング システムの場合)、SHLIB_PATH 環境変数 (HP-UX の場合)、または LIBPATH 環境変数 (AIX の場合) を使用して既定の検索パスを上書きする必要があることがあります。

詳細については、システム開発者または Kerberos ベンダーに問い合わせてください。

参照

その他の技術情報

Profile コマンド

Team Explorer Everywhere および Team Foundation Server について