[HOWTO] IIS の Kerberos に関する問題のトラブルシューティング

文書翻訳 文書翻訳
文書番号: 326985 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、インターネット インフォメーション サービス (IIS) サーバーで Kerberos 認証のトラブルシューティングを行う方法について説明します。このガイドではすべてが網羅されているわけではありませんが、発生する可能性がある Kerberos の問題のトラブルシューティングに役立つ多くの関連情報が掲載されています。

デフォルトでは、Microsoft Windows 2000 サーバーに IIS をインストールすると、メタベースの NTAuthenticationProviders キーが "Negotiate, NTLM" に設定されます。つまり、Microsoft Internet Explorer 5.0 以降のクライアントが Web サイトに接続すると、IIS は WWW-Authenticate ヘッダーでこれら 2 つの値を返します。このとき、クライアントが接続に使用できる認証方法を決定します。クライアントは、Negotiate を使用して接続することを決定すると、サーバーとネゴシエートして、認証に Kerberos と NTLM のどちらを使用するかを決定します。Negotiate をサポートしていない場合、クライアントは認証に NTLM を使用します。

これは、この処理のしくみに関するごく一般的な説明です。Kerberos が使用される場合、他にも多くの処理が透過的に行われます。

Internet Explorer クライアントが Kerberos プロトコルを使用して接続できる場合、いくつかの追加のセキュリティ チェックが実行されます。たとえば、クライアントがチケット保証サービス (TGS) からチケットを取得し、そのチケットを使用して認証することがあります。

この処理のしくみの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
217098 [NT]Windows 2000 での Kerberos 認証の概要
詳細については、『Windows 2000 リソースキット 3 分散システム ガイド 上』の「11.3 Kerberos 認証の機能」または次のマイクロソフト Web サイトを参照してください。
Authentication
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true
Kerberos のトラブルシューティングを行うには、上記の関連資料を理解しておく必要があります。

: 最近 Internet Explorer 6.0 にアップグレードした場合、[統合 Windows 認証を使用する (再起動が必要)] チェック ボックスがデフォルトでオフになっているため、Kerberos の問題が発生することがあります。 このオプションが正しく設定されていることを確認する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
299838 Internet Explorer 6 にアップグレードした後 Kerberos 認証がネゴシエートされない

認証方法を確認する

適切な認証方法が IIS サーバーまたは特定の Web サイトのメタベースに含まれていることを確認します。サーバーを Microsoft Windows NT 4.0 から Windows 2000 にアップグレードした場合は、Negotiate での認証を使用できないため、手動で追加する必要があります。Windows NT 4.0 から Windows 2000 にアップグレードしていない場合は、適切な認証方法を使用できることを確認します。 Negotiate での認証が使用可能であることを確認する方法、および認証方法が存在しない場合に追加する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
248350 [IIS] IIS 4.0 から IIS 5.0 にアップグレードした後、Kerberos 認証が失敗する
この認証方法は、IIS サーバー全体ではなく、Web サイト レベルで設定できます。これを行うには、Adsutil.vbs スクリプトを使用して Web サイトの番号を追加します。たとえば、既定の Web サイトのみに認証方法を設定するには、Inetpub\Adminscripts ディレクトリで次のコマンドを使用します。

cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
"w3svc" の後の 1 は、インターネット サービス マネージャ (ISM) に表示される Web サイトの番号です。

サーバー名を確認する

次に、サーバーの実際の NetBIOS と DNS 名 (たとえば、www.microsoft.com) などのエイリアス名のどちらを使用して Web サイトに接続しているのかを確認します。サーバーの実際の名前と異なる名前を使用して Web サーバーにアクセスしている場合は、Windows 2000 Server Resource Kit の Setspn ツールを使用して、新しいサービス プリンシパル名 (SPN) が登録されている必要があります。Active Directory でこのサービス名が認識されないことが原因で、ユーザーを認証するためのチケットが TGS によって交付されません。このため、クライアントは次に使用可能な認証方法である NTLM を使用してネゴシエートします。Web サーバーが www.microsoft.com の DNS (Domain Name System) 名に応答せず、サーバーの名前が webserver1.development.microsoft.com である場合、それぞれの IIS サーバーの Active Directory に www.microsoft.com を登録する必要があります。これを行うには、Setspn ユーティリティをダウンロードして、IIS サーバーにインストールする必要があります。

Setspn ユーティリティをダウンロードする方法の詳細については、次のマイクロソフト Web サイトを参照してください。
Setspn.exe
http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en

実際の名前を使用して接続しているかどうかを確認するには、DNS 名ではなく、実際の名前を使用してサーバーに接続します。サーバーに接続できない場合は、「コンピュータが委任に対して信頼されていることを確認する」に進みます。サーバーに接続できる場合は、次の手順を実行して、サーバーへの接続に使用する DNS 名に SPN を設定します。
  1. Setspn ユーティリティをインストールします。
  2. IIS サーバーで、コマンド プロンプトを開き、C:\Program Files\Resource Kit ディレクトリに移動します。
  3. 次のコマンドを実行して、サーバーの Active Directory にこの新しい SPN (www.microsoft.com) を追加します。webserver1 はサーバーの NetBIOS 名です。
    Setspn -A HTTP/www.microsoft.com webserver1
    出力として次のようなメッセージが表示されます。
    Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=com
    HTTP/www.microsoft.com
    Updated object
    							
  4. サーバー上の SPN を表示して、この新しい値を確認するには、IIS サーバーで Setspn -L webservername と入力します。
すべてのサービスを登録する必要はありません。HTTP、W3SVC、WWW、RPC、CIFS (ファイル アクセス)、WINS、無停電電源装置 (UPS) など、サービスの種類の多くは、HOST という名前のデフォルトのサービスの種類にマッピングされます。たとえば、クライアント ソフトウェアで HTTP/webserver1.microsoft.com の SPN を使用して webserver1.microsoft.com サーバー上の Web サーバーに HTTP 接続を実行したときに、この SPN がサーバーで登録されていない場合、Windows 2000 ドメイン コントローラはこれを自動的に HOST/webserver1.microsoft.com にマッピングします。このマッピングは、Web サービスがローカル システム アカウントで実行されている場合にのみ適用されます。

コンピュータが委任に対して信頼されていることを確認する

この IIS サーバーがドメインのメンバであっても、ドメイン コントローラでない場合、Kerberos が適切に機能するためには、コンピュータが委任に対して信頼されている必要があります。これを有効にするには、以下の手順を実行します。
  1. ドメイン コントローラで、[スタート] ボタンをクリックし、[設定] をポイントし、[コントロール パネル] をクリックします。
  2. [管理ツール] フォルダをダブルクリックし、[Active Directory ユーザーとコンピュータ] をダブルクリックします。
  3. 使用しているドメインの下で、[Computers] フォルダをクリックします。
  4. 一覧で IIS サーバーを見つけます。サーバー名を右クリックし、[プロパティ] をクリックします。
  5. [全般] タブをクリックし、[コンピュータを委任に対して信頼する] チェック ボックスをオンにして、[OK] をクリックします。

Kerbtray を使用する

Kerberos の問題のトラブルシューティングを行う場合、Windows 2000 Resource Kit に含まれている Kerbtray.exe も便利なユーティリティとして使用できます。Kerbtray を使用すると、ローカル キャッシュから許可された Kerberos チケットを確認できます。このユーティリティをダウンロードするには、次のマイクロソフト Web サイトを参照してください。
Kerbtray.exe: Kerberos Tray
http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en
このツールの詳細と Kerberos のトラブルシューティングのヒントについては、次のマイクロソフト Web サイトを参照してください。
管理権限の認証
http://www.microsoft.com/japan/technet/security/bestprac/authent.mspx

セキュリティ イベント ログを有効にする

Kerberos 認証の失敗のトラブルシューティングを行う際に、セキュリティ イベント ログが非常に重要な場合があります。このログ出力を有効にすると、ユーザーが IIS を介して認証を行ったときのログオンの失敗を確認できます。このログ ファイルで、認証処理中に発生した現象と、認証処理が失敗した理由の説明を確認できます。

これ以降の情報は、Michael Howard 著『Designing Secure Web Based Applications for Windows 2000』から直接引用したものです。 Windows 2000 では接続の認証が行われるため、ログオン イベントを読み取る方法を理解する必要があります。ここでは、ログオン イベントを構成するさまざまな変数について説明します。

ログオン/ログオフ監査の設定

Microsoft Windows NT に含まれるログオンとログオフの監査分類は 1 つのみですが、Windows 2000 では 2 つ目の分類が導入されています。以下では、ログオン/ログオフおよびアカウント ログオンの 2 つの分類について説明します。

アカウント ログオン イベントの監査 (分類名 "ログオン/ログオフ")

Windows NT および Windows 2000 のすべてのバージョンで使用可能なこのイベント分類は、アカウントがコンピュータにログオンまたはログオフするか、ネットワーク接続したことを示します。つまり、ログオンが行われたコンピュータ上で監査イベントが発生します。IIS、SQL Server、および COM+ を使用した場合に多くの情報が表示されるため、ログオン/ログオフの分類は重要です。

ログオン/ログオフの分類で最も重要なイベントには、以下のものがあります。
  • ログオン/ログオフ イベント 529 (ログオンの失敗)
  • ログオン/ログオフ イベント 528 (ログオンの成功)
  • ログオン/ログオフ イベント 540 (ネットワーク ログオンの成功)
以下に、これらのイベントを示します。表 1 では、イベントの各フィールドについて説明します。

ログオン/ログオフ イベント 529 (ログオンの失敗)

種類 : 失敗の監査
ソース : Security
分類 : ログオン/ログオフ
イベント ID : 529
日付 : 1999/09/03
時刻 : 20:57:21
ユーザー : NT AUTHORITY\SYSTEM
コンピュータ : CHERYL-LAPTOP
説明 :
ログオンの失敗 :
   原因 :              ユーザー名が不明またはパスワードが無効です。
   ユーザー名 :          Administrator
   ドメイン :           CHERYL-LAPTOP
   ログオンの種類 :       2
   ログオン プロセス :    seclogon
   認証パッケージ : Negotiate
   ワークステーション名 : CHERYL-LAPTOP

				

ログオン/ログオフ イベント 528 (ログオンの成功) およびログオン/ログオフ イベント 540 (ネットワーク ログオンの成功)

種類 : 成功の監査
ソース : Security
分類 : ログオン/ログオフ
イベント ID : 540
日付 : 2000/01/23
時刻 : 17:41:39
ユーザー : EXAIR\Cheryl
コンピュータ : CHERYL-LAPTOP
説明 :
ネットワーク ログオンの成功 :
   ユーザー名 :        cheryl
   ドメイン :          EXAIR
   ログオン ID :      (0x0,0x17872A8)
   ログオンの種類 :       3
   ログオン プロセス :  Kerberos
   認証パッケージ :     Kerberos
   ワークステーション名 :

				
表 1 - ログオンの成功および失敗のフィールド
元に戻す全体を表示する
フィールドコメント
イベントの種類、ソース、分類、ID、日付、時刻 (説明は特にありません)
ユーザー
ログオンを実行したユーザー アカウントです。たとえば、多くの Windows 2000 サービスで起動に使用される LocalSystem アカウントである NT AUTHORITY\SYSTEM などです。
コンピュータ イベントが発生したコンピュータです。
原因 ログオンの失敗のみに適用されます。アカウントがログオンに失敗した原因です。
ユーザー名 ログオンしようとしたユーザー アカウントの名前です。
ドメイン ログオンしようとしたユーザー アカウントのドメインです。
ログオンの種類 ログオンの種類を示す数値です。以下の値があります。
2 - 対話型 (対話型ログオン。)
3 - ネットワーク (ネットワーク経由でシステムにアクセスしました。)
4 - バッチ (バッチ ジョブとして起動されました。)
5 - サービス (サービス コントローラによって起動された Windows サービス。)
6 - プロキシ (プロキシ ログオン。Windows NT または Windows 2000 では使用されません。)
7 - ロックの解除 (ワークステーションのロックを解除しました。)
8 - ネットワーク クリアテキスト (クリアテキストの資格情報を使用したネットワーク ログオン。)
9 - 新しい資格情報 (/netonly オプションが使用される場合に RunAs によって使用されます。)
ログオン プロセス ログオンを実行したプロセス。以下は、ログオン プロセスの例です。
- Advapi (LogonUser への呼び出しによって起動されます。LogonUser が LsaLogonUser を呼び出し、LsaLogonUser の引数の 1 つである OriginName がログオンの発生場所を識別します。)
- User32 (WinLogon を使用する標準の Windows 2000 ログオン。)
- SCMgr (サービス コントロール マネージャがサービスを開始しました。)
- KsecDD (NET USE コマンドを使用した場合など、SMB サーバーへのネットワーク接続です。)
- Kerberos (Kerberos セキュリティ サポート プロバイダ (SSP)。)
- NtlmSsp (NTLM SSP。)
- Seclogon (セカンダリ ログオン、つまり RunAs コマンド。)
- IIS (IIS がログオンを実行したことを示し、IUSR_machinename アカウントでログオンするか、ダイジェスト認証または基本認証を使用したときに生成されます。)
認証パッケージ アカウントにログオンするために呼び出されたセキュリティ パッケージ。セキュリティ パッケージは、ログオン データを分析し、アカウントを認証するかどうかを決定する DLL (ダイナミック リンク ライブラリ) です。最も一般的な例には、Kerberos、Negotiate、NTLM、MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 (MSV1_0) があります。MSV1_0 は、SAM データベースでユーザーを認証し、信頼される側のドメイン内のアカウントに対するパススルー認証をサポートし、サブ認証パッケージをサポートします。
ワークステーション名ログオン時にプリンシパルによって使用されたワークステーション名 (認識できた場合のみ)。

アカウント ログオン イベントの監査 (分類名 "アカウント ログオン")

このイベント分類は、アカウントがログオンまたはログオフし、アカウントの検証にコンピュータが使用されたことを示します。この場合、アカウントのあるコンピュータ上で監査イベントが発生します。この監査分類を有効にすると、チケット発行などの多くの Kerberos 関連のイベントがログに出力されます。

以下に、発生することの多い、2 つのアカウント ログオンの失敗イベントを示します。

アカウント ログオン イベント 676 (ログオンの失敗) : 認証チケット要求の失敗
種類 : 失敗の監査
ソース : Security
分類 : アカウント ログオン
イベント ID : 676
日付 : 2000/05/11
時刻 : 20:47:01
ユーザー : NT AUTHORITY\SYSTEM
コンピュータ : DBSERVER
説明 :
認証チケット要求の失敗 :
   ユーザー名 :          Major
   提供された領域名 :     EXPLORATIONAIR.COM
   サービス名 :          krbtgt/EXPLORATIONAIR.COM
   チケット オプション :   0x40810010
   失敗コード:          6
   クライアント アドレス : 172.100.100.12

				
: NT AUTHORITY\SYSTEM アカウントは、通常 LocalSystem と呼ばれるアカウントです。サービスの大部分はこのアカウントで実行されます。セキュリティ イベント ログには、このアカウントが多く表示されます。

イベント 676 は、Major がキー配布センター (KDC) から最初のチケット保証チケット (TGT) を取得できなかったことを示します。このイベントで最も重要な部分は失敗コードです。これらのコードは MIT Kerberos コードと同じです。表 2 では、最も一般的な失敗コードのいくつかについて説明します。すべてが記載された一覧は、Kerberos Request For Comments: RFC 1510 で参照できます。

表 2 - 一般的な Kerberos の失敗コード
元に戻す全体を表示する
失敗コードコメント
6 クライアントが Kerberos データベースに見つかりません。
7 サーバーが Kerberos データベースに見つかりません。これは、一般的にサービス プリンシパル名 (SPN) がサービスに登録されていないことを示します。
23 パスワードの有効期限が切れています。
32 チケットの有効期限が切れています。
33 チケットがまだ有効になっていません。
34 要求は再生です。他のユーザーが Kerberos クライアントの応答を再生しようとしています。攻撃を受けている可能性があります。
37 時計に大きな誤差があります。Kerberos は時間を厳密に判別します。時計がすべて同期していることを確認してください。


エラー コードに大きな数字を含むアカウント ログオン イベント 681 (ログオンの失敗)

次のようなエラーが表示されることがあります。問題は、エラー コードのみから原因を特定するのが困難であるということです。
種類 : 失敗の監査
ソース : Security
分類 : アカウント ログオン
イベント ID : 681
日付 : 2000/05/11
時刻 : 20:47:01
ユーザー : NT AUTHORITY\SYSTEM
コンピュータ : DBSERVER
説明 :
ワークステーション : WEBSERVER
 アカウント : Major
 名前 : MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
 からのログオンは失敗しました。エラー コード: 3221225572

				
表 3 - アカウント ログオンのエラー コードの例

元に戻す全体を表示する
エラー コード (10 進数)エラー コード (16 進数)コメント
3221225572 0xC0000064 指定されたユーザーは存在しません。
3221225570 0xC0000062 指定された名前は正しい形式のアカウント名ではありません。
3221225569 0xC0000061 クライアントが必要な特権を保有していません。
3221225578 0xC000006A パスワードの更新時、このリターン状態は、現在のパスワードとして指定した値が正しくないことを示します。
3221225580 0xC000006C パスワードが正しくありません。パスワードの更新時、この状態は一部のパスワード更新規則に違反したことを示します。たとえば、パスワードの長さが条件に合っていない可能性があります。
3221225585 0xC0000071 ユーザー アカウントのパスワードの有効期限が切れています。
3221225586 0xC0000072 参照したアカウントは現在無効です。

上記の 2 つのセキュリティ失敗イベントを関連付けると、Major がログオンしようとしたときに、エラー 6 (クライアントが Kerberos データベースに見つかりません) で最初の TGT 要求が失敗し、エラー 3221225572 (指定されたユーザーは存在しません) で一般的なログオンの失敗が発生しています。つまり、Major が有効なアカウントでないことがエラーの原因です。

関連情報

Kerberos の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
266080 Kerberos に関してよく寄せられる質問
244474 Kerberos に UDP ではなく TCP を使用するように強制する方法
262177 [HOWTO] Kerberos イベント ログを有効にする方法
287537 基本認証を使用して Kerberos トークンを生成する
277741 Kerberos トークンに割り当てられたバッファが不十分で Internet Explorer によるログオンが失敗する
269643 IIS に接続する際に Internet Explorer の Kerberos 認証がバッファ不足のため機能しない
264921 [INFO] IIS におけるブラウザ クライアントの認証方法
248350 [IIS] IIS 4.0 から IIS 5.0 にアップグレードした後、Kerberos 認証が失敗する
294382 Web サイトのホスト ヘッダーがサーバーの NetBIOS 名と異なる場合、認証が "401.3" エラーで失敗することがある
217098 [NT]Windows 2000 での Kerberos 認証の概要
283201 COM+ 装備の Windows 2000 での委任の使用方法
299838 Internet Explorer 6 にアップグレードした後 Kerberos 認証がネゴシエートされない
230476 Windows 2000 における Kerberos 関連のよくあるエラーについて
320903 クライアントが TCP を介した Kerberos を使用してログオンできない
235529 Windows 2000 ベースのサーバー クラスタでの Kerberos サポート
280830 ユーザーが多くのグループのメンバである場合に Kerberos 認証が機能しないことがある
Kerberos FAQ には、Kerberos プロトコルに関する詳細情報が記載されています。
Kerberos FAQ, v2.0

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 326985 (最終更新日 2005-08-12) を基に作成したものです。

プロパティ

文書番号: 326985 - 最終更新日: 2006年11月15日 - リビジョン: 10.0
この資料は以下の製品について記述したものです。
  • Microsoft Internet Information Services 5.0
キーワード:?
kbhowtomaster KB326985
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com